de.fuberlin.wiwiss.d2rq.optimizer.expr
Class TransformExprToSQLApplyer

java.lang.Object
  extended by de.fuberlin.wiwiss.d2rq.optimizer.expr.TransformExprToSQLApplyer
All Implemented Interfaces:
ExprVisitor

public final class TransformExprToSQLApplyer
extends Object
implements ExprVisitor

Attempts to transform a SPARQL FILTER Expr to a SQL Expression Notes:

Author:
Herwig Leimer, Giovanni Mels

Constructor Summary
TransformExprToSQLApplyer(NodeRelation nodeRelation)
          Creates an expression transformer.
 
Method Summary
static Expression convert(Expr expr, NodeRelation nodeRelation)
          Converts a SPARQL filter expression to an SQL expression
protected  void extensionConvert(ExprFunction function, List<Expression> args)
           
protected  boolean extensionSupports(ExprFunction function)
           
 void finishVisit()
           
 Expression result()
          Returns the sql Expression
 void startVisit()
           
 void visit(ExprAggregator eAgg)
           
 void visit(ExprFunction0 func)
           
 void visit(ExprFunction1 function)
           
 void visit(ExprFunction2 function)
           
 void visit(ExprFunction3 func)
           
 void visit(ExprFunctionN func)
           
 void visit(ExprFunctionOp funcOp)
           
 void visit(ExprVar var)
           
 void visit(NodeValue value)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TransformExprToSQLApplyer

public TransformExprToSQLApplyer(NodeRelation nodeRelation)
Creates an expression transformer.

Parameters:
nodeRelation -
Method Detail

convert

public static Expression convert(Expr expr,
                                 NodeRelation nodeRelation)
Converts a SPARQL filter expression to an SQL expression

Parameters:
expr - The root node of an Expr tree, contains the SPARQL filter.
nodeRelation - The relation supplying the values to apply the filter on.
Returns:
The root node of an Expression tree, if conversion was successful, null otherwise.

result

public Expression result()
Returns the sql Expression

Returns:
the transformed sql expression if converting was possible, otherwise null.

startVisit

public void startVisit()
Specified by:
startVisit in interface ExprVisitor

finishVisit

public void finishVisit()
Specified by:
finishVisit in interface ExprVisitor

visit

public void visit(ExprFunction0 func)
Specified by:
visit in interface ExprVisitor

visit

public void visit(ExprFunction1 function)
Specified by:
visit in interface ExprVisitor

visit

public void visit(ExprFunction2 function)
Specified by:
visit in interface ExprVisitor

visit

public void visit(ExprFunction3 func)
Specified by:
visit in interface ExprVisitor

visit

public void visit(ExprFunctionN func)
Specified by:
visit in interface ExprVisitor

visit

public void visit(ExprFunctionOp funcOp)
Specified by:
visit in interface ExprVisitor

visit

public void visit(ExprAggregator eAgg)
Specified by:
visit in interface ExprVisitor

visit

public void visit(ExprVar var)
Specified by:
visit in interface ExprVisitor

visit

public void visit(NodeValue value)
Specified by:
visit in interface ExprVisitor

extensionSupports

protected boolean extensionSupports(ExprFunction function)

extensionConvert

protected void extensionConvert(ExprFunction function,
                                List<Expression> args)