java.lang.Object
org.eclipse.persistence.internal.jpa.parsing.ParseTreeContext

public class ParseTreeContext extends Object
INTERNAL

Purpose: The ParseTreeContext holds and manages context information for the parse tree for validation.

Responsibilities:

  • Associate schema names with variables
  • Associate identifier with nodes
  • Answer an alias for a variable name
  • Answer a class for a variable name
  • Answer a class loader
  • Answer true if there is a class for a variable name
  • Answer a node for a given identifier
  • Print the context on a string
Since:
TopLink 4.0
See Also:
  • Constructor Details

    • ParseTreeContext

      public ParseTreeContext(NodeFactory nodeFactory, String queryInfo)
      INTERNAL Return a new initialized ParseTreeContext
  • Method Details

    • registerSchema

      public void registerSchema(String variable, String schema, int line, int column)
      INTERNAL Associate the given schema with the given variable.
    • registerJoinVariable

      public void registerJoinVariable(String variable, Node path, int line, int column)
      INTERNAL Associate the given path with the given variable.
    • unregisterVariable

      public void unregisterVariable(String variable)
      INTERNAL
    • isVariable

      public boolean isVariable(String variable)
      INTERNAL Returns true if the specified string denotes a variable.
    • isRangeVariable

      public boolean isRangeVariable(String variable)
      INTERNAL Returns true if the specified string denotes a range variable.
    • schemaForVariable

      public String schemaForVariable(String variable)
      INTERNAL Returns the abstract schema name if the specified string denotes a range variable.
    • classForSchemaName

      public Class<?> classForSchemaName(String schemaName, GenerationContext context)
      INTERNAL Answer the class associated with the provided schema name
    • getVariableNameForClass

      public String getVariableNameForClass(Class<?> theClass, GenerationContext context)
      INTERNAL getVariableNameForClass(): Answer the name mapped to the specified class. Answer null if none found. SELECT OBJECT (emp) FROM Employee emp getVariableNameForClass(Employee.class) => "emp"
    • pathForVariable

      public Node pathForVariable(String variable)
      INTERNAL Returns the path if the specified string denotes a join or collection member variable.
    • getBaseVariable

      public String getBaseVariable()
    • setBaseVariable

      public void setBaseVariable(String variable)
    • getNodeFactory

      public NodeFactory getNodeFactory()
    • getQueryInfo

      public String getQueryInfo()
    • isDeclaredInOuterScope

      public boolean isDeclaredInOuterScope(String variable)
      INTERNAL Returns true if the specified string denotes a variable declared in an outer scope.
    • setScopeOfVariable

      public void setScopeOfVariable(String variable)
      INTERNAL Sets the scope of the specified variable to the current scope.
    • enterScope

      public void enterScope()
      INTERNAL Enters a new scope. This initializes the set of outer scope variables.
    • leaveScope

      public void leaveScope()
      INTERNAL Leaves the current scope.
    • registerOuterScopeVariable

      public void registerOuterScopeVariable(String variable)
      INTERNAL Adds the specified variable to the set of outer scope variables.
    • getOuterScopeVariables

      public Set<String> getOuterScopeVariables()
      INTERNAL Returns the set of outer scope variables.
    • resetOuterScopeVariables

      public void resetOuterScopeVariables()
      INTERNAL Resets the set of outer scope variables.
    • resetOuterScopeVariables

      public void resetOuterScopeVariables(Set<String> variables)
      INTERNAL Resets the set of outer scope variables.
    • registerFetchJoin

      public void registerFetchJoin(String variableName, Node node)
      Associate the given variableName with the given node representing a JOIN FETCH node.
    • getFetchJoins

      public List<Node> getFetchJoins(String variableName)
      Returns a list of FETCH JOIN nodes for the specified attached to the specified variable.
    • usedVariable

      public void usedVariable(String variable)
      Mark the specified variable as used if it is declared in the current scope.
    • getUnusedVariables

      public Set<String> getUnusedVariables()
      Returns s set of variables that are declared in the current scope, but not used in the query.
    • hasMoreThanOneVariablePerType

      public boolean hasMoreThanOneVariablePerType()
    • hasMoreThanOneAliasInFrom

      public boolean hasMoreThanOneAliasInFrom()
    • getTypeHelper

      public TypeHelper getTypeHelper()
      INTERNAL Returns the type helper stored in this context.
    • setTypeHelper

      public void setTypeHelper(TypeHelper typeHelper)
      INTERNAL Stores the specified type helper in this context.
    • addParameter

      public void addParameter(String parameterName)
      INTERNAL Add a parameter.
    • defineParameterType

      public void defineParameterType(String parameterName, Object parameterType, int line, int column)
      INTERNAL Defines the type of the parameter with the specified name.
    • hasParameters

      public boolean hasParameters()
      INTERNAL Returns true if the query has at least one parameter.
    • getParameterType

      public Object getParameterType(String parameter)
      INTERNAL Return the type of the specified parameter.
    • getParameterNames

      public List<String> getParameterNames()
      INTERNAL Return the parameter names.