1 5 6 7 8 package com.hp.hpl.jena.rdql.parser; 9 10 11 import java.io.PrintWriter ; 12 import com.hp.hpl.jena.graph.Node ; 13 import com.hp.hpl.jena.graph.query.*; 14 import com.hp.hpl.jena.rdql.*; 15 16 public class Q_Var extends ExprNode implements Var, Expr 17 { 18 String varName ; 19 int index ; 20 VariableIndexes varIndexes ; 21 22 public Q_Var(int id) { super(id); } 23 public Q_Var(RDQLParser p, int id) { super(p, id); } 24 25 public void jjtClose() 26 { 27 if ( jjtGetNumChildren() != 1 ) 28 throw new RDQL_InternalErrorException("Q_Var: expected 1 child: got "+jjtGetNumChildren()) ; 29 varName = ((Q_Identifier)jjtGetChild(0)).id ; 30 } 31 32 public String getVarName() { return varName ; } 33 public void setVarName(String vn) { varName = vn ; } 34 35 public NodeValue eval(com.hp.hpl.jena.rdql.Query q, IndexValues env) 36 { 37 com.hp.hpl.jena.graph.Node v = (Node)env.get(index) ; 39 if ( v == null ) 40 { 41 System.err.println("Oh dear: variable: "+varName) ; 42 WorkingVar tmp = new WorkingVar() ; 43 tmp.setString("unset: "+varName+"/"+index) ; 44 return tmp ; 45 } 46 WorkingVar var = new WorkingVar() ; 47 var.setNode(v) ; 48 return var ; 49 } 50 51 public String toString() { return "?"+varName ; } 52 53 public String asInfixString() { return toString() ; } 54 public String asPrefixString() { return toString() ; } 55 56 public void print(PrintWriter pw, int level) 58 { 59 QueryPrintUtils.indent(pw, level) ; 60 pw.println(this.asPrefixString()) ; 61 } 62 63 public Valuator prepare(VariableIndexes vi) 65 { 66 super.prepare(vi) ; 67 varIndexes = vi ; 68 index = vi.indexOf(varName) ; 69 return this ; 70 } 71 72 public boolean isVariable() { return true ; } 73 public String getName() { return varName ; } 75 76 } 77 78 104 | Popular Tags |