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 ClassesNested classes/interfaces inherited from class org.apache.openjpa.kernel.exps.CandidatePath
CandidatePath.Traversal -
Field Summary
FieldsFields inherited from class org.apache.openjpa.kernel.exps.CandidatePath
_actions, _correlationVarFields 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
ConstructorsConstructorDescriptionReturn 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 TypeMethodDescriptionvoidaddVariableAction(org.apache.openjpa.jdbc.kernel.exps.Variable var) Set the path as a binding of the given variable.voidappendIndex(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL checking the index of this value.voidappendIsEmpty(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL testing whether this value is empty to the given buffer.voidappendIsNotEmpty(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL testing whether this value is not empty to the given buffer.voidappendIsNotNull(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL testing whether this value is not null to the given buffer.voidappendIsNull(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL testing whether this value is null to the given buffer.voidappendSize(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL checking the size of this value.voidappendTo(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) voidappendTo(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql, int index) Append theindexth SQL element to the given buffer.voidvoidappendType(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql) Append the SQL checking the type of this value.voidcalculateValue(Select sel, ExpContext ctx, ExpState state, Val other, ExpState otherState) Calculate and cache the SQL for this value.booleanprotected Objecteval(Object candidate, Object orig, StoreContext ctx, Object[] params) Return this value for the given candidate.voidget(FieldMetaData field, boolean nullTraversal) Traverse into the given field of the current object, and update the current object to that field value.voidget(FieldMetaData fmd, XMLMetaData meta) Traverse into the given field that maps to xml column, and update the current object to that field value.voidget(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) intgetId()voidgetKey()Return any associated persistent type.getType()Return the expected type for this value, orObjectif the type is unknown.Return the current XPath's xmlmapping metadata.getXPath()voidgroupBy(Select sel, ExpContext ctx, ExpState state) Group by this value.inthashCode()initialize(Select sel, ExpContext ctx, int flags) Initialize the value.booleanisKey()booleanbooleanReturn true if this is a bound variable that has not been accessed after binding.booleanReturn true if this value is a variable.booleanReturn whether this is a path involving a variable.booleanisXPath()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.intlength(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.voidorderBy(Select sel, ExpContext ctx, ExpState state, boolean asc) Order by this value.voidselect(Select sel, ExpContext ctx, ExpState state, boolean pks) Select the data for this value.voidselectColumns(Select sel, ExpContext ctx, ExpState state, boolean pks) Select just the columns for this value.voidsetContainsId(String id) If this path is part of a contains clause, then alias it to the proper contains id before initialization.voidsetImplicitType(Class type) Set the implicit type of the value, based on how it is used in the filter.voidsetMetaData(ClassMetaData meta) Associate a persistent type with this value.voidsetSchemaAlias(String schemaAlias) Set the schema alias (the identification variable) this path is begin with.voidsetSubqueryContext(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.voidMethods inherited from class org.apache.openjpa.kernel.exps.CandidatePath
castTo, getCandidateType, getCorrelationVarMethods inherited from class org.apache.openjpa.kernel.exps.Val
acceptVisit, eval, evaluate, evaluate, getAlias, getName, getPath, getSelectAs, isAggregate, setAliasMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.openjpa.kernel.exps.Path
getCorrelationVarMethods inherited from interface org.apache.openjpa.jdbc.kernel.exps.Val
getSelectAsMethods 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:PathSet the schema alias (the identification variable) this path is begin with.- Specified by:
setSchemaAliasin interfacePath- Overrides:
setSchemaAliasin classCandidatePath
-
getSchemaAlias
- Specified by:
getSchemaAliasin interfacePath- Overrides:
getSchemaAliasin classCandidatePath
-
setSubqueryContext
- Specified by:
setSubqueryContextin interfacePath- Overrides:
setSubqueryContextin 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:ValueReturn any associated persistent type.- Specified by:
getMetaDatain interfaceValue- Overrides:
getMetaDatain classVal
-
setMetaData
Description copied from interface:ValueAssociate a persistent type with this value.- Specified by:
setMetaDatain interfaceValue- Overrides:
setMetaDatain classVal
-
isKey
public boolean isKey() -
isXPath
public boolean isXPath()Description copied from interface:ValueReturn true if this value is an XML Path. -
getXPath
-
getPCPathString
-
getClassMapping
-
getFieldMapping
-
getColumns
-
isVariable
public boolean isVariable()Description copied from interface:ValueReturn true if this value is a variable.- Specified by:
isVariablein interfaceValue- Overrides:
isVariablein classVal
-
get
Description copied from class:CandidatePathTraverse into the given field of the current object, and update the current object to that field value.- Specified by:
getin interfacePath- Overrides:
getin classCandidatePathnullTraversal- if true, allow traversal through a null field
-
get
Description copied from interface:PathTraverse into the given field that maps to xml column, and update the current object to that field value.- Specified by:
getin interfacePath- Overrides:
getin classCandidatePath- Parameters:
fmd- field maps to xml columnmeta- associated xml mapping
-
get
Description copied from interface:PathTraverse into the gevin xpath name of the current object, and update the current object to that xpath field.- Specified by:
getin interfacePath- Overrides:
getin classCandidatePath
-
getXmlMapping
Description copied from interface:PathReturn the current XPath's xmlmapping metadata.- Specified by:
getXmlMappingin interfacePath- Overrides:
getXmlMappingin classCandidatePath- Returns:
- Return xmlmapping
-
getKey
public void getKey() -
last
Description copied from interface:PathReturn the last field in the path, or null if the path does not not contain a final field.- Specified by:
lastin interfacePath- Overrides:
lastin classCandidatePath
-
getType
Description copied from interface:ValueReturn the expected type for this value, orObjectif the type is unknown.- Specified by:
getTypein interfaceValue- Overrides:
getTypein classCandidatePath
-
setImplicitType
Description copied from interface:ValueSet the implicit type of the value, based on how it is used in the filter. This method is only called on values who returnObjectfromValue.getType().- Specified by:
setImplicitTypein interfaceValue- Overrides:
setImplicitTypein classCandidatePath
-
initialize
Description copied from interface:ValInitialize the value. This method should recursively initialize any sub-values.- Specified by:
initializein interfaceVal
-
eval
Description copied from class:ValReturn this value for the given candidate.- Overrides:
evalin classCandidatePath
-
toDataStoreValue
Description copied from interface:ValReturn the datastore value of the given object in the context of this value.- Specified by:
toDataStoreValuein interfaceVal
-
select
Description copied from interface:ValSelect the data for this value. -
selectColumns
Description copied from interface:ValSelect just the columns for this value.- Specified by:
selectColumnsin interfaceVal
-
groupBy
Description copied from interface:ValGroup by this value. -
orderBy
Description copied from interface:ValOrder by this value. -
load
Description copied from interface:ValLoad the data for this value.- Specified by:
loadin interfaceVal- Throws:
SQLException
-
calculateValue
public void calculateValue(Select sel, ExpContext ctx, ExpState state, Val other, ExpState otherState) Description copied from interface:ValCalculate and cache the SQL for this value. This method is called beforelengthor anyappendmethods.- Specified by:
calculateValuein interfaceValother- the value being compared to, or null if not a comparison
-
verifyIndexedField
public void verifyIndexedField() -
length
Description copied from interface:ValReturn the number of SQL elements in this value. -
appendTo
-
appendTo
Description copied from interface:ValAppend theindexth SQL element to the given buffer. -
appendTo
-
appendIsEmpty
Description copied from interface:ValAppend the SQL testing whether this value is empty to the given buffer.- Specified by:
appendIsEmptyin interfaceVal
-
appendIsNotEmpty
Description copied from interface:ValAppend the SQL testing whether this value is not empty to the given buffer.- Specified by:
appendIsNotEmptyin interfaceVal
-
appendIndex
Description copied from interface:ValAppend the SQL checking the index of this value.- Specified by:
appendIndexin interfaceVal
-
appendType
Description copied from interface:ValAppend the SQL checking the type of this value.- Specified by:
appendTypein interfaceVal
-
appendSize
Description copied from interface:ValAppend the SQL checking the size of this value.- Specified by:
appendSizein interfaceVal
-
appendIsNull
Description copied from interface:ValAppend the SQL testing whether this value is null to the given buffer.- Specified by:
appendIsNullin interfaceVal
-
appendIsNotNull
Description copied from interface:ValAppend the SQL testing whether this value is not null to the given buffer.- Specified by:
appendIsNotNullin interfaceVal
-
isSubqueryPath
public boolean isSubqueryPath() -
hashCode
public int hashCode()- Overrides:
hashCodein classCandidatePath
-
equals
- Overrides:
equalsin classCandidatePath
-
getId
public int getId()
-