java.lang.Object
org.eclipse.persistence.internal.expressions.ExpressionIterator

public abstract class ExpressionIterator extends Object
Used to itterate an expression tree, through inner subclasses.
  • Field Details

    • result

      protected Object result
      Allow the iteration to build a result.
    • statement

      protected SQLSelectStatement statement
      Some iterations require a statement.
    • parameter

      protected Object parameter
      Some iterations require a more general parameter.
  • Constructor Details

    • ExpressionIterator

      protected ExpressionIterator()
      Block constructor comment.
  • Method Details

    • getResult

      public Object getResult()
    • getStatement

      public SQLSelectStatement getStatement()
    • hasAlreadyVisited

      public boolean hasAlreadyVisited(Expression expression)
      Answers if this expression has already been visited. For a faster iteration override to insure expressions are only visited/processed once.
    • iterate

      public abstract void iterate(Expression expression)
      INTERNAL: This method must be defined by subclasses to implement the logic of the iteratation.
    • iterateOn

      public void iterateOn(Vector expressions)
      INTERNAL:
    • iterateOn

      public void iterateOn(Expression expression)
      INTERNAL: Return the call.
    • setResult

      public void setResult(Object result)
    • setStatement

      public void setStatement(SQLSelectStatement statement)
    • shouldIterateOverSubSelects

      public boolean shouldIterateOverSubSelects()
      Normally an Iterator will not go into the where clause of an SQLSubSelectExpression. I.e. when aliasing the parent statement is aliased before the subselects may even be normalized. An iterator to alias the SubSelect must be run later.