Class PCPath
java.lang.Object
org.apache.openjpa.kernel.exps.Val
org.apache.openjpa.kernel.exps.CandidatePath
org.apache.openjpa.jdbc.kernel.exps.PCPath
- All Implemented Interfaces:
Serializable
,Val
,Path
,Value
A path represents a traversal into fields of a candidate object.
- Author:
- Abe White
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.openjpa.kernel.exps.CandidatePath
CandidatePath.Traversal
-
Field Summary
Fields inherited from class org.apache.openjpa.kernel.exps.CandidatePath
_actions, _correlationVar
Fields inherited from interface org.apache.openjpa.jdbc.kernel.exps.Val
ABS_VAL, ARGS_VAL, CMP_EQUAL, COALESCE_VAL, CONCAT_VAL, FORCE_OUTER, GENERALCASE_VAL, INDEXOF_VAL, JOIN_REL, LENGTH_VAL, LOCATE_VAL, LOWER_VAL, MATH_VAL, NULL_CMP, NULLIF_VAL, SIMPLECASE_VAL, SQRT_VAL, SUBSTRING_VAL, TRIM_VAL, UPPER_VAL, VAL, WHENCONDITION_VAL, WHENSCALAR_VAL
-
Constructor Summary
ConstructorDescriptionReturn a path starting from the given subquery.PCPath
(ClassMapping type) Return a path starting with the 'this' ptr.PCPath
(ClassMapping candidate, org.apache.openjpa.jdbc.kernel.exps.Variable var) Return a path starting from the given variable. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addVariableAction
(org.apache.openjpa.jdbc.kernel.exps.Variable var) Set the path as a binding of the given variable.void
appendIndex
(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL checking the index of this value.void
appendIsEmpty
(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL testing whether this value is empty to the given buffer.void
appendIsNotEmpty
(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL testing whether this value is not empty to the given buffer.void
appendIsNotNull
(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL testing whether this value is not null to the given buffer.void
appendIsNull
(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL testing whether this value is null to the given buffer.void
appendSize
(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL checking the size of this value.void
appendTo
(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) void
appendTo
(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql, int index) Append theindex
th SQL element to the given buffer.void
void
appendType
(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL checking the type of this value.void
calculateValue
(Select sel, ExpContext ctx, ExpState state, Val other, ExpState otherState) Calculate and cache the SQL for this value.boolean
protected Object
eval
(Object candidate, Object orig, StoreContext ctx, Object[] params) Return this value for the given candidate.void
get
(FieldMetaData field, boolean nullTraversal) Traverse into the given field of the current object, and update the current object to that field value.void
get
(FieldMetaData fmd, XMLMetaData meta) Traverse into the given field that maps to xml column, and update the current object to that field value.void
get
(XMLMetaData meta, String name) Traverse into the gevin xpath name of the current object, and update the current object to that xpath field.getClassMapping
(ExpState state) Column[]
getColumns
(ExpState state) getFieldMapping
(ExpState state) int
getId()
void
getKey()
Return any associated persistent type.getType()
Return the expected type for this value, orObject
if the type is unknown.Return the current XPath's xmlmapping metadata.getXPath()
void
groupBy
(Select sel, ExpContext ctx, ExpState state) Group by this value.int
hashCode()
initialize
(Select sel, ExpContext ctx, int flags) Initialize the value.boolean
isKey()
boolean
boolean
Return true if this is a bound variable that has not been accessed after binding.boolean
Return true if this value is a variable.boolean
Return whether this is a path involving a variable.boolean
isXPath()
Return true if this value is an XML Path.last()
Return the last field in the path, or null if the path does not not contain a final field.int
length
(Select sel, ExpContext ctx, ExpState state) Return the number of SQL elements in this value.load
(ExpContext ctx, ExpState state, Result res) Load the data for this value.void
orderBy
(Select sel, ExpContext ctx, ExpState state, boolean asc) Order by this value.void
select
(Select sel, ExpContext ctx, ExpState state, boolean pks) Select the data for this value.void
selectColumns
(Select sel, ExpContext ctx, ExpState state, boolean pks) Select just the columns for this value.void
setContainsId
(String id) If this path is part of a contains clause, then alias it to the proper contains id before initialization.void
setImplicitType
(Class type) Set the implicit type of the value, based on how it is used in the filter.void
setMetaData
(ClassMetaData meta) Associate a persistent type with this value.void
setSchemaAlias
(String schemaAlias) Set the schema alias (the identification variable) this path is begin with.void
setSubqueryContext
(Context context, String correlationVar) toDataStoreValue
(Select sel, ExpContext ctx, ExpState state, Object val) Return the datastore value of the given object in the context of this value.void
Methods inherited from class org.apache.openjpa.kernel.exps.CandidatePath
castTo, getCandidateType, getCorrelationVar
Methods inherited from class org.apache.openjpa.kernel.exps.Val
acceptVisit, eval, evaluate, evaluate, getAlias, getName, getPath, getSelectAs, isAggregate, setAlias
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.openjpa.kernel.exps.Path
getCorrelationVar
Methods inherited from interface org.apache.openjpa.jdbc.kernel.exps.Val
getSelectAs
Methods inherited from interface org.apache.openjpa.kernel.exps.Value
acceptVisit, getAlias, getName, getPath, isAggregate, setAlias
-
Field Details
-
TRUE
- See Also:
-
FALSE
- See Also:
-
-
Constructor Details
-
PCPath
Return a path starting with the 'this' ptr. -
PCPath
Return a path starting from the given variable. -
PCPath
Return a path starting from the given subquery.
-
-
Method Details
-
setSchemaAlias
Description copied from interface:Path
Set the schema alias (the identification variable) this path is begin with.- Specified by:
setSchemaAlias
in interfacePath
- Overrides:
setSchemaAlias
in classCandidatePath
-
getSchemaAlias
- Specified by:
getSchemaAlias
in interfacePath
- Overrides:
getSchemaAlias
in classCandidatePath
-
setSubqueryContext
- Specified by:
setSubqueryContext
in interfacePath
- Overrides:
setSubqueryContext
in classCandidatePath
-
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
If this path is part of a contains clause, then alias it to the proper contains id before initialization. -
getMetaData
Description copied from interface:Value
Return any associated persistent type.- Specified by:
getMetaData
in interfaceValue
- Overrides:
getMetaData
in classVal
-
setMetaData
Description copied from interface:Value
Associate a persistent type with this value.- Specified by:
setMetaData
in interfaceValue
- Overrides:
setMetaData
in classVal
-
isKey
public boolean isKey() -
isXPath
public boolean isXPath()Description copied from interface:Value
Return true if this value is an XML Path. -
getXPath
-
getPCPathString
-
getClassMapping
-
getFieldMapping
-
getColumns
-
isVariable
public boolean isVariable()Description copied from interface:Value
Return true if this value is a variable.- Specified by:
isVariable
in interfaceValue
- Overrides:
isVariable
in classVal
-
get
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 interfacePath
- Overrides:
get
in classCandidatePath
nullTraversal
- if true, allow traversal through a null field
-
get
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 interfacePath
- Overrides:
get
in classCandidatePath
- Parameters:
fmd
- field maps to xml columnmeta
- associated xml mapping
-
get
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 interfacePath
- Overrides:
get
in classCandidatePath
-
getXmlMapping
Description copied from interface:Path
Return the current XPath's xmlmapping metadata.- Specified by:
getXmlMapping
in interfacePath
- Overrides:
getXmlMapping
in classCandidatePath
- Returns:
- Return xmlmapping
-
getKey
public void getKey() -
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 interfacePath
- Overrides:
last
in classCandidatePath
-
getType
Description copied from interface:Value
Return the expected type for this value, orObject
if the type is unknown.- Specified by:
getType
in interfaceValue
- Overrides:
getType
in classCandidatePath
-
setImplicitType
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 returnObject
fromValue.getType()
.- Specified by:
setImplicitType
in interfaceValue
- Overrides:
setImplicitType
in classCandidatePath
-
initialize
Description copied from interface:Val
Initialize the value. This method should recursively initialize any sub-values.- Specified by:
initialize
in interfaceVal
-
eval
Description copied from class:Val
Return this value for the given candidate.- Overrides:
eval
in classCandidatePath
-
toDataStoreValue
Description copied from interface:Val
Return the datastore value of the given object in the context of this value.- Specified by:
toDataStoreValue
in interfaceVal
-
select
Description copied from interface:Val
Select the data for this value. -
selectColumns
Description copied from interface:Val
Select just the columns for this value.- Specified by:
selectColumns
in interfaceVal
-
groupBy
Description copied from interface:Val
Group by this value. -
orderBy
Description copied from interface:Val
Order by this value. -
load
Description copied from interface:Val
Load the data for this value.- Specified by:
load
in interfaceVal
- Throws:
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 beforelength
or anyappend
methods.- Specified by:
calculateValue
in interfaceVal
other
- the value being compared to, or null if not a comparison
-
verifyIndexedField
public void verifyIndexedField() -
length
Description copied from interface:Val
Return the number of SQL elements in this value. -
appendTo
-
appendTo
Description copied from interface:Val
Append theindex
th SQL element to the given buffer. -
appendTo
-
appendIsEmpty
Description copied from interface:Val
Append the SQL testing whether this value is empty to the given buffer.- Specified by:
appendIsEmpty
in interfaceVal
-
appendIsNotEmpty
Description copied from interface:Val
Append the SQL testing whether this value is not empty to the given buffer.- Specified by:
appendIsNotEmpty
in interfaceVal
-
appendIndex
Description copied from interface:Val
Append the SQL checking the index of this value.- Specified by:
appendIndex
in interfaceVal
-
appendType
Description copied from interface:Val
Append the SQL checking the type of this value.- Specified by:
appendType
in interfaceVal
-
appendSize
Description copied from interface:Val
Append the SQL checking the size of this value.- Specified by:
appendSize
in interfaceVal
-
appendIsNull
Description copied from interface:Val
Append the SQL testing whether this value is null to the given buffer.- Specified by:
appendIsNull
in interfaceVal
-
appendIsNotNull
Description copied from interface:Val
Append the SQL testing whether this value is not null to the given buffer.- Specified by:
appendIsNotNull
in interfaceVal
-
isSubqueryPath
public boolean isSubqueryPath() -
hashCode
public int hashCode()- Overrides:
hashCode
in classCandidatePath
-
equals
- Overrides:
equals
in classCandidatePath
-
getId
public int getId()
-