Class ExpressionCompiler

java.lang.Object
org.datanucleus.store.query.expression.ExpressionCompiler

public class ExpressionCompiler extends Object
Compiler for expressions. Responsible for taking a Node tree and creating an Expression tree.
  • Field Details

  • Constructor Details

    • ExpressionCompiler

      public ExpressionCompiler()
  • Method Details

    • setMethodAliases

      public void setMethodAliases(Map<String,String> aliasByPrefix)
    • setSymbolTable

      public void setSymbolTable(SymbolTable symtbl)
    • compileOrderExpression

      public Expression compileOrderExpression(Node node)
      Primary entry point for compiling a node for the order clause.
      Parameters:
      node - The node
      Returns:
      Its compiled expression
    • compileFromExpression

      public Expression compileFromExpression(Node node, boolean classIsExpression)
      Primary entry point for compiling a node for the from clause.
      Parameters:
      node - The node
      classIsExpression - whether the class of the from node is an expression relating to the outer query
      Returns:
      Its compiled expression
    • compileExpression

      public Expression compileExpression(Node node)
      Primary entry point for compiling a node for the filter, grouping, having, result clauses.
      Parameters:
      node - The node
      Returns:
      Its compiled expression
    • compileOrAndExpression

      private Expression compileOrAndExpression(Node node)
      This method deals with the OR/AND conditions. A condition specifies a combination of one or more expressions and logical (Boolean) operators and returns a value of TRUE, FALSE, or unknown
      Parameters:
      node - The Node to process
    • compileRelationalExpression

      private Expression compileRelationalExpression(Node node)
    • compileAdditiveMultiplicativeExpression

      private Expression compileAdditiveMultiplicativeExpression(Node node)
    • compileUnaryExpression

      private Expression compileUnaryExpression(Node node)
    • compilePrimaryExpression

      private Expression compilePrimaryExpression(Node node)
    • getExpressionsForPropertiesOfNode

      private List<Expression> getExpressionsForPropertiesOfNode(Node node)
      Convenience method to extract properties for this node and return the associated list of expressions.
      Parameters:
      node - The node
      Returns:
      The list of expressions for the properties (or null if no properties)
    • isOperator

      private boolean isOperator(Node node, String operator)