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.query.IndexValues; 13 import com.hp.hpl.jena.graph.query.Expression ; 14 import com.hp.hpl.jena.rdql.*; 15 16 public class Q_UnaryPlus extends ExprNode implements ExprNumeric { 17 Expr expr ; 18 19 private String printName = "unaryplus" ; 20 private String opSymbol = "+" ; 21 22 Q_UnaryPlus(int id) { super(id); } 23 Q_UnaryPlus(RDQLParser p, int id) { super(p, id); } 24 25 public NodeValue eval(Query q, IndexValues env) 26 { 27 NodeValue r = expr.eval(q, env) ; 28 if ( ! r.isNumber() ) 29 throw new EvalTypeException("Q_UnaryPlus: Wanted a number: got "+expr) ; 30 31 return r ; 32 } 33 34 public void jjtClose() 35 { 36 int n = jjtGetNumChildren() ; 37 if ( n != 1 ) 38 throw new QueryException("Q_UnaryPlus: Wrong number of children: "+n) ; 39 expr = (Expr)jjtGetChild(0) ; 40 } 41 42 45 public boolean isApply() { return true ; } 46 public String getFun() { return super.constructURI(this.getClass().getName()) ; } 47 public int argCount() { return 1; } 48 public Expression getArg(int i) 49 { 50 if ( i == 0 && expr instanceof Expression ) 51 return (Expression)expr ; 52 return null; 53 } 54 55 public String asInfixString() { return QueryPrintUtils.asInfixString1(expr, printName, opSymbol) ; } 56 57 public String asPrefixString() { return QueryPrintUtils.asPrefixString(expr, null, printName, opSymbol) ; } 58 59 public void print(PrintWriter pw, int level) { QueryPrintUtils.print(pw, expr, null, printName, opSymbol, level) ; } 60 61 public String toString() { return asInfixString() ; } 62 } 63 64 65 91 | Popular Tags |