Class PCPath
- java.lang.Object
-
- org.apache.openjpa.kernel.exps.Val
-
- org.apache.openjpa.kernel.exps.CandidatePath
-
- org.apache.openjpa.jdbc.kernel.exps.PCPath
-
public class PCPath extends CandidatePath
A path represents a traversal into fields of a candidate object.- Author:
- Abe White
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPCPath.PathExpStateExpression state.-
Nested classes/interfaces inherited from class org.apache.openjpa.kernel.exps.CandidatePath
CandidatePath.Traversal
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.StringFALSEprotected static java.lang.StringTRUE-
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
Constructors Constructor Description PCPath(SubQ sub)Return 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddVariableAction(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.voidappendTo(Select sel, ExpState state, SQLBuffer sql, Column col)voidappendType(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.booleanequals(java.lang.Object other)protected java.lang.Objecteval(java.lang.Object candidate, java.lang.Object orig, StoreContext ctx, java.lang.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, java.lang.String name)Traverse into the gevin xpath name of the current object, and update the current object to that xpath field.ClassMappinggetClassMapping(ExpState state)Column[]getColumns(ExpState state)FieldMappinggetFieldMapping(ExpState state)intgetId()voidgetKey()ClassMetaDatagetMetaData()Return any associated persistent type.java.lang.StringgetPCPathString()java.lang.StringgetSchemaAlias()java.lang.ClassgetType()Return the expected type for this value, orObjectif the type is unknown.XMLMetaDatagetXmlMapping()Return the current XPath's xmlmapping metadata.java.lang.StringgetXPath()voidgroupBy(Select sel, ExpContext ctx, ExpState state)Group by this value.inthashCode()ExpStateinitialize(Select sel, ExpContext ctx, int flags)Initialize the value.booleanisKey()booleanisSubqueryPath()booleanisUnaccessedVariable()Return true if this is a bound variable that has not been accessed after binding.booleanisVariable()Return true if this value is a variable.booleanisVariablePath()Return whether this is a path involving a variable.booleanisXPath()Return true if this value is an XML Path.FieldMetaDatalast()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.java.lang.Objectload(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(java.lang.String id)If this path is part of a contains clause, then alias it to the proper contains id before initialization.voidsetImplicitType(java.lang.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(java.lang.String schemaAlias)Set the schema alias (the identification variable) this path is begin with.voidsetSubqueryContext(Context context, java.lang.String correlationVar)java.lang.ObjecttoDataStoreValue(Select sel, ExpContext ctx, ExpState state, java.lang.Object val)Return the datastore value of the given object in the context of this value.voidverifyIndexedField()-
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 Detail
-
TRUE
protected static final java.lang.String TRUE
- See Also:
- Constant Field Values
-
FALSE
protected static final java.lang.String FALSE
- See Also:
- Constant Field Values
-
-
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:PathSet the schema alias (the identification variable) this path is begin with.- Specified by:
setSchemaAliasin interfacePath- Overrides:
setSchemaAliasin classCandidatePath
-
getSchemaAlias
public java.lang.String getSchemaAlias()
- Specified by:
getSchemaAliasin interfacePath- Overrides:
getSchemaAliasin classCandidatePath
-
setSubqueryContext
public void setSubqueryContext(Context context, java.lang.String correlationVar)
- 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
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.
-
getMetaData
public ClassMetaData getMetaData()
Description copied from interface:ValueReturn any associated persistent type.- Specified by:
getMetaDatain interfaceValue- Overrides:
getMetaDatain classVal
-
setMetaData
public void setMetaData(ClassMetaData meta)
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
public java.lang.String getXPath()
-
getPCPathString
public java.lang.String getPCPathString()
-
getClassMapping
public ClassMapping getClassMapping(ExpState state)
-
getFieldMapping
public FieldMapping getFieldMapping(ExpState state)
-
isVariable
public boolean isVariable()
Description copied from interface:ValueReturn true if this value is a variable.- Specified by:
isVariablein interfaceValue- Overrides:
isVariablein classVal
-
get
public void get(FieldMetaData field, boolean nullTraversal)
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
public void get(FieldMetaData fmd, XMLMetaData meta)
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
public void get(XMLMetaData meta, java.lang.String name)
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
public XMLMetaData 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
public FieldMetaData 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
public java.lang.Class 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
public void setImplicitType(java.lang.Class type)
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
public ExpState initialize(Select sel, ExpContext ctx, int flags)
Description copied from interface:ValInitialize the value. This method should recursively initialize any sub-values.- Specified by:
initializein interfaceVal
-
eval
protected java.lang.Object eval(java.lang.Object candidate, java.lang.Object orig, StoreContext ctx, java.lang.Object[] params)Description copied from class:ValReturn this value for the given candidate.- Overrides:
evalin classCandidatePath
-
toDataStoreValue
public java.lang.Object toDataStoreValue(Select sel, ExpContext ctx, ExpState state, java.lang.Object val)
Description copied from interface:ValReturn the datastore value of the given object in the context of this value.- Specified by:
toDataStoreValuein interfaceVal
-
select
public void select(Select sel, ExpContext ctx, ExpState state, boolean pks)
Description copied from interface:ValSelect the data for this value.
-
selectColumns
public void selectColumns(Select sel, ExpContext ctx, ExpState state, boolean pks)
Description copied from interface:ValSelect just the columns for this value.- Specified by:
selectColumnsin interfaceVal
-
groupBy
public void groupBy(Select sel, ExpContext ctx, ExpState state)
Description copied from interface:ValGroup by this value.
-
orderBy
public void orderBy(Select sel, ExpContext ctx, ExpState state, boolean asc)
Description copied from interface:ValOrder by this value.
-
load
public java.lang.Object load(ExpContext ctx, ExpState state, Result res) throws java.sql.SQLException
Description copied from interface:ValLoad the data for this value.
-
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
public int length(Select sel, ExpContext ctx, ExpState state)
Description copied from interface:ValReturn the number of SQL elements in this value.
-
appendTo
public void appendTo(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
-
appendTo
public void appendTo(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql, int index)
Description copied from interface:ValAppend theindexth SQL element to the given buffer.
-
appendIsEmpty
public void appendIsEmpty(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
Description copied from interface:ValAppend the SQL testing whether this value is empty to the given buffer.- Specified by:
appendIsEmptyin interfaceVal
-
appendIsNotEmpty
public void appendIsNotEmpty(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
Description copied from interface:ValAppend the SQL testing whether this value is not empty to the given buffer.- Specified by:
appendIsNotEmptyin interfaceVal
-
appendIndex
public void appendIndex(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
Description copied from interface:ValAppend the SQL checking the index of this value.- Specified by:
appendIndexin interfaceVal
-
appendType
public void appendType(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
Description copied from interface:ValAppend the SQL checking the type of this value.- Specified by:
appendTypein interfaceVal
-
appendSize
public void appendSize(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
Description copied from interface:ValAppend the SQL checking the size of this value.- Specified by:
appendSizein interfaceVal
-
appendIsNull
public void appendIsNull(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
Description copied from interface:ValAppend the SQL testing whether this value is null to the given buffer.- Specified by:
appendIsNullin interfaceVal
-
appendIsNotNull
public void appendIsNotNull(Select sel, ExpContext ctx, ExpState state, SQLBuffer sql)
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
public boolean equals(java.lang.Object other)
- Overrides:
equalsin classCandidatePath
-
-