Class EJBQLPathTranslator

java.lang.Object
org.apache.cayenne.ejbql.EJBQLBaseVisitor
org.apache.cayenne.access.translator.ejbql.EJBQLPathTranslator
All Implemented Interfaces:
EJBQLExpressionVisitor

public abstract class EJBQLPathTranslator extends EJBQLBaseVisitor
A translator that walks the relationship/attribute path, appending joins to the query.
Since:
3.0
  • Field Details

    • currentEntity

      protected ObjEntity currentEntity
    • lastPathComponent

      protected String lastPathComponent
    • innerJoin

      protected boolean innerJoin
    • lastAlias

      protected String lastAlias
    • idPath

      protected String idPath
    • joinMarker

      protected String joinMarker
    • fullPath

      protected String fullPath
  • Constructor Details

  • Method Details

    • appendMultiColumnPath

      protected abstract void appendMultiColumnPath(EJBQLMultiColumnOperand operand)
    • visitPath

      public boolean visitPath(EJBQLExpression expression, int finishedChildIndex)
      Description copied from interface: EJBQLExpressionVisitor
      Called on visiting "path" expression and also after visiting every expression child.
      Specified by:
      visitPath in interface EJBQLExpressionVisitor
      Overrides:
      visitPath in class EJBQLBaseVisitor
      Parameters:
      expression - a "path" node being visited.
      finishedChildIndex - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.
    • visitIdentifier

      public boolean visitIdentifier(EJBQLExpression expression)
      Specified by:
      visitIdentifier in interface EJBQLExpressionVisitor
      Overrides:
      visitIdentifier in class EJBQLBaseVisitor
    • visitIdentificationVariable

      public boolean visitIdentificationVariable(EJBQLExpression expression)
      Specified by:
      visitIdentificationVariable in interface EJBQLExpressionVisitor
      Overrides:
      visitIdentificationVariable in class EJBQLBaseVisitor
    • resolveLastPathComponent

      protected void resolveLastPathComponent(String pathComponent)
      Since:
      4.0
    • resolveJoin

      protected void resolveJoin()
    • processIntermediatePathComponent

      protected void processIntermediatePathComponent()
    • processLastPathComponent

      protected void processLastPathComponent()
    • processTerminatingAttribute

      protected void processTerminatingAttribute(ObjAttribute attribute)
    • processTerminatingRelationship

      protected void processTerminatingRelationship(ObjRelationship relationship)
    • chooseDbRelationship

      protected DbRelationship chooseDbRelationship(ObjRelationship relationship)
      Checks if the object relationship is flattened and then chooses the corresponding db relationship. The last in idPath if isFlattened and the first in list otherwise.
      Parameters:
      relationship - the object relationship
      Returns:
      DbRelationship
    • isUsingAliases

      public boolean isUsingAliases()
    • setUsingAliases

      public void setUsingAliases(boolean usingAliases)