Class ExpressionIterator


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

      • result

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

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

      • ExpressionIterator

        public ExpressionIterator()
        Block constructor comment.
    • Method Detail

      • getResult

        public Object getResult()
      • 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)
      • 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.