java.lang.Object
org.eclipse.persistence.expressions.Expression
org.eclipse.persistence.internal.expressions.BaseExpression
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
DataExpression, FunctionExpression, ParameterExpression, SubSelectExpression

public abstract class BaseExpression extends Expression
Generic class for an expression with a base. The base is the expression that this one is derived from.
See Also:
  • Field Details

    • baseExpression

      protected Expression baseExpression
      The base expression is what this was derived from.
    • builder

      protected ExpressionBuilder builder
      PERF: Used to cache the builder.
  • Constructor Details

    • BaseExpression

      protected BaseExpression()
    • BaseExpression

      protected BaseExpression(Expression baseExpression)
  • Method Details

    • getBaseExpression

      public Expression getBaseExpression()
      The base expression is what the parameter was derived from.
    • getBuilder

      public ExpressionBuilder getBuilder()
      Return the expression builder which is the ultimate base of this expression, or null if there isn't one (shouldn't happen if we start from a root).
      Specified by:
      getBuilder in class Expression
    • postCopyIn

      protected void postCopyIn(Map alreadyDone)
      INTERNAL: Used for cloning.
      Overrides:
      postCopyIn in class Expression
    • resetPlaceHolderBuilder

      public void resetPlaceHolderBuilder(ExpressionBuilder queryBuilder)
      INTERNAL: Search the tree for any expressions (like SubSelectExpressions) that have been built using a builder that is not attached to the query. This happens in case of an Exists call using a new ExpressionBuilder(). This builder needs to be replaced with one from the query.
      Specified by:
      resetPlaceHolderBuilder in class Expression
    • setBaseExpression

      public void setBaseExpression(Expression baseExpression)
      The base expression is what the parameter was derived from. This is used for nested parameters.
    • shallowClone

      public Expression shallowClone()
      INTERNAL: Clear the builder when cloning.
      Overrides:
      shallowClone in class Expression