package eu.play_project.play_platformservices_querydispatcher.bdpl.visitor.realtime; import com.hp.hpl.jena.sparql.expr.ExprAggregator; import com.hp.hpl.jena.sparql.expr.ExprFunction1; import com.hp.hpl.jena.sparql.expr.ExprFunction2; import com.hp.hpl.jena.sparql.expr.ExprFunction3; import com.hp.hpl.jena.sparql.expr.ExprVisitor; /** * Generate code for having constrains. * @author sobermeier * */ public class HavingVisitor extends GenericVisitor implements ExprVisitor { private StringBuffer code; // Generated code. private MathExprFunctionXVisitor mathFuncVisitor; public HavingVisitor() { code = new StringBuffer(); mathFuncVisitor = new MathExprFunctionXVisitor(); } /** * Get generated code. * @return Generated code. */ public StringBuffer getCode() { return code; } /* * The visitor will append his generated code to the given StringBuffer. */ public void setCode(StringBuffer code) { this.code = code; } // Use MathExprFunctionXVisitor because he already knows how to deal with such expressions. @Override public void visit(ExprFunction1 arg0) { mathFuncVisitor.visit(arg0); code = mathFuncVisitor.getCode(); } @Override public void visit(ExprFunction2 arg0) { mathFuncVisitor.visit(arg0); code = mathFuncVisitor.getCode(); } @Override public void visit(ExprFunction3 arg0) { mathFuncVisitor.visit(arg0); code = mathFuncVisitor.getCode(); } @Override public void visit(ExprAggregator arg0) { mathFuncVisitor.visit(arg0); code = mathFuncVisitor.getCode(); } public void visit1(ExprAggregator arg0) { mathFuncVisitor.visit(arg0); code = mathFuncVisitor.getCode(); } }