Class PCPath

  • All Implemented Interfaces:
    java.io.Serializable, Val, Path, Value

    public class PCPath
    extends CandidatePath
    A path represents a traversal into fields of a candidate object.
    Author:
    Abe White
    See Also:
    Serialized Form
    • Constructor Detail

      • PCPath

        public PCPath​(ClassMapping type)
        Return a path starting with the 'this' ptr.
      • PCPath

        public PCPath​(ClassMapping candidate,
                      org.apache.openjpa.jdbc.kernel.exps.Variable var)
        Return a path starting from the given variable.
      • PCPath

        public PCPath​(SubQ sub)
        Return a path starting from the given subquery.
    • Method Detail

      • setSchemaAlias

        public void setSchemaAlias​(java.lang.String schemaAlias)
        Description copied from interface: Path
        Set the schema alias (the identification variable) this path is begin with.
        Specified by:
        setSchemaAlias in interface Path
        Overrides:
        setSchemaAlias in class CandidatePath
      • addVariableAction

        public void addVariableAction​(org.apache.openjpa.jdbc.kernel.exps.Variable var)
        Set the path as a binding of the given variable.
      • isUnaccessedVariable

        public boolean isUnaccessedVariable()
        Return true if this is a bound variable that has not been accessed after binding. Useful for filters like "coll.contains (var) && var == null", which should really just act like "coll.contains (null)".
      • isVariablePath

        public boolean isVariablePath()
        Return whether this is a path involving a variable.
      • setContainsId

        public void setContainsId​(java.lang.String id)
        If this path is part of a contains clause, then alias it to the proper contains id before initialization.
      • isKey

        public boolean isKey()
      • isXPath

        public boolean isXPath()
        Description copied from interface: Value
        Return true if this value is an XML Path.
        Specified by:
        isXPath in interface Value
        Overrides:
        isXPath in class Val
      • getXPath

        public java.lang.String getXPath()
      • getPCPathString

        public java.lang.String getPCPathString()
      • isVariable

        public boolean isVariable()
        Description copied from interface: Value
        Return true if this value is a variable.
        Specified by:
        isVariable in interface Value
        Overrides:
        isVariable in class Val
      • get

        public void get​(FieldMetaData field,
                        boolean nullTraversal)
        Description copied from class: CandidatePath
        Traverse into the given field of the current object, and update the current object to that field value.
        Specified by:
        get in interface Path
        Overrides:
        get in class CandidatePath
        nullTraversal - if true, allow traversal through a null field
      • get

        public void get​(FieldMetaData fmd,
                        XMLMetaData meta)
        Description copied from interface: Path
        Traverse into the given field that maps to xml column, and update the current object to that field value.
        Specified by:
        get in interface Path
        Overrides:
        get in class CandidatePath
        Parameters:
        fmd - field maps to xml column
        meta - associated xml mapping
      • get

        public void get​(XMLMetaData meta,
                        java.lang.String name)
        Description copied from interface: Path
        Traverse into the gevin xpath name of the current object, and update the current object to that xpath field.
        Specified by:
        get in interface Path
        Overrides:
        get in class CandidatePath
      • getKey

        public void getKey()
      • last

        public FieldMetaData last()
        Description copied from interface: Path
        Return the last field in the path, or null if the path does not not contain a final field.
        Specified by:
        last in interface Path
        Overrides:
        last in class CandidatePath
      • getType

        public java.lang.Class getType()
        Description copied from interface: Value
        Return the expected type for this value, or Object if the type is unknown.
        Specified by:
        getType in interface Value
        Overrides:
        getType in class CandidatePath
      • setImplicitType

        public void setImplicitType​(java.lang.Class type)
        Description copied from interface: Value
        Set the implicit type of the value, based on how it is used in the filter. This method is only called on values who return Object from Value.getType().
        Specified by:
        setImplicitType in interface Value
        Overrides:
        setImplicitType in class CandidatePath
      • initialize

        public ExpState initialize​(Select sel,
                                   ExpContext ctx,
                                   int flags)
        Description copied from interface: Val
        Initialize the value. This method should recursively initialize any sub-values.
        Specified by:
        initialize in interface Val
      • eval

        protected java.lang.Object eval​(java.lang.Object candidate,
                                        java.lang.Object orig,
                                        StoreContext ctx,
                                        java.lang.Object[] params)
        Description copied from class: Val
        Return this value for the given candidate.
        Overrides:
        eval in class CandidatePath
      • toDataStoreValue

        public java.lang.Object toDataStoreValue​(Select sel,
                                                 ExpContext ctx,
                                                 ExpState state,
                                                 java.lang.Object val)
        Description copied from interface: Val
        Return the datastore value of the given object in the context of this value.
        Specified by:
        toDataStoreValue in interface Val
      • select

        public void select​(Select sel,
                           ExpContext ctx,
                           ExpState state,
                           boolean pks)
        Description copied from interface: Val
        Select the data for this value.
        Specified by:
        select in interface Val
      • selectColumns

        public void selectColumns​(Select sel,
                                  ExpContext ctx,
                                  ExpState state,
                                  boolean pks)
        Description copied from interface: Val
        Select just the columns for this value.
        Specified by:
        selectColumns in interface Val
      • orderBy

        public void orderBy​(Select sel,
                            ExpContext ctx,
                            ExpState state,
                            boolean asc)
        Description copied from interface: Val
        Order by this value.
        Specified by:
        orderBy in interface Val
      • load

        public java.lang.Object load​(ExpContext ctx,
                                     ExpState state,
                                     Result res)
                              throws java.sql.SQLException
        Description copied from interface: Val
        Load the data for this value.
        Specified by:
        load in interface Val
        Throws:
        java.sql.SQLException
      • calculateValue

        public void calculateValue​(Select sel,
                                   ExpContext ctx,
                                   ExpState state,
                                   Val other,
                                   ExpState otherState)
        Description copied from interface: Val
        Calculate and cache the SQL for this value. This method is called before length or any append methods.
        Specified by:
        calculateValue in interface Val
        other - the value being compared to, or null if not a comparison
      • verifyIndexedField

        public void verifyIndexedField()
      • length

        public int length​(Select sel,
                          ExpContext ctx,
                          ExpState state)
        Description copied from interface: Val
        Return the number of SQL elements in this value.
        Specified by:
        length in interface Val
      • appendTo

        public void appendTo​(Select sel,
                             ExpContext ctx,
                             ExpState state,
                             SQLBuffer sql,
                             int index)
        Description copied from interface: Val
        Append the indexth SQL element to the given buffer.
        Specified by:
        appendTo in interface Val
      • appendIsEmpty

        public void appendIsEmpty​(Select sel,
                                  ExpContext ctx,
                                  ExpState state,
                                  SQLBuffer sql)
        Description copied from interface: Val
        Append the SQL testing whether this value is empty to the given buffer.
        Specified by:
        appendIsEmpty in interface Val
      • appendIsNotEmpty

        public void appendIsNotEmpty​(Select sel,
                                     ExpContext ctx,
                                     ExpState state,
                                     SQLBuffer sql)
        Description copied from interface: Val
        Append the SQL testing whether this value is not empty to the given buffer.
        Specified by:
        appendIsNotEmpty in interface Val
      • appendIsNull

        public void appendIsNull​(Select sel,
                                 ExpContext ctx,
                                 ExpState state,
                                 SQLBuffer sql)
        Description copied from interface: Val
        Append the SQL testing whether this value is null to the given buffer.
        Specified by:
        appendIsNull in interface Val
      • appendIsNotNull

        public void appendIsNotNull​(Select sel,
                                    ExpContext ctx,
                                    ExpState state,
                                    SQLBuffer sql)
        Description copied from interface: Val
        Append the SQL testing whether this value is not null to the given buffer.
        Specified by:
        appendIsNotNull in interface Val
      • isSubqueryPath

        public boolean isSubqueryPath()
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class CandidatePath
      • getId

        public int getId()
        Specified by:
        getId in interface Val