Class SameNodeJoinConditionImpl
- java.lang.Object
-
- org.apache.jackrabbit.oak.query.ast.JoinConditionImpl
-
- org.apache.jackrabbit.oak.query.ast.SameNodeJoinConditionImpl
-
public class SameNodeJoinConditionImpl extends JoinConditionImpl
The "issamenode(...)" join condition.
-
-
Field Summary
Fields Modifier and Type Field Description protected QueryImplquery-
Fields inherited from class org.apache.jackrabbit.oak.query.ast.JoinConditionImpl
KNOWN_PARENT_PATH, KNOWN_PATH, KNOWN_VALUE, SPECIAL_PATH_PREFIX
-
-
Constructor Summary
Constructors Constructor Description SameNodeJoinConditionImpl(String selector1Name, String selector2Name, String selector2Path)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbindSelector(SourceImpl source)booleancanEvaluate(Set<SourceImpl> available)Whether the join condition can be evaluated if the given selectors are able to retrieve data.protected PropertyValueconvertValueToType(PropertyValue v, PropertyValue targetType)@NotNull org.apache.jackrabbit.oak.query.ast.AstElementcopyOf()booleanevaluate()Evaluate the result using the currently set values.protected StringgetLocalPath(String path)Calculate the session local path (the path excluding the workspace name) if possible.booleanisParent(SourceImpl source)Check whether the given source is the parent of the join condition, as selector "[b]" is the parent of the join condition "isdescendantnode([a], [b])".protected StringnormalizePath(String path)Validate and normalize the path.protected StringnormalizePropertyName(String propertyName)Normalize the property name (including namespace remapping).protected Stringprotect(Object expression)protected static Stringquote(String pathOrName)protected static StringquoteJson(String string)voidrestrict(FilterImpl f)Apply the condition to the filter, further restricting the filter if possible.voidrestrictPushDown(SelectorImpl s)Push as much of the condition down to this selector, further restricting the selector condition if possible.voidsetQuery(QueryImpl query)StringtoString()
-
-
-
Field Detail
-
query
protected QueryImpl query
-
-
Method Detail
-
bindSelector
public void bindSelector(SourceImpl source)
-
evaluate
public boolean evaluate()
Description copied from class:JoinConditionImplEvaluate the result using the currently set values.- Specified by:
evaluatein classJoinConditionImpl- Returns:
- true if the constraint matches
-
restrict
public void restrict(FilterImpl f)
Description copied from class:JoinConditionImplApply the condition to the filter, further restricting the filter if possible. This may also verify the data types are compatible, and that paths are valid.- Specified by:
restrictin classJoinConditionImpl- Parameters:
f- the filter
-
restrictPushDown
public void restrictPushDown(SelectorImpl s)
Description copied from class:JoinConditionImplPush as much of the condition down to this selector, further restricting the selector condition if possible.- Specified by:
restrictPushDownin classJoinConditionImpl- Parameters:
s- the selector
-
isParent
public boolean isParent(SourceImpl source)
Description copied from class:JoinConditionImplCheck whether the given source is the parent of the join condition, as selector "[b]" is the parent of the join condition "isdescendantnode([a], [b])".- Specified by:
isParentin classJoinConditionImpl- Parameters:
source- the source- Returns:
- true if the source is the parent
-
canEvaluate
public boolean canEvaluate(Set<SourceImpl> available)
Description copied from class:JoinConditionImplWhether the join condition can be evaluated if the given selectors are able to retrieve data.- Specified by:
canEvaluatein classJoinConditionImpl- Parameters:
available- the available selectors- Returns:
- true if the condition can be evaluated
-
setQuery
public void setQuery(QueryImpl query)
-
normalizePropertyName
protected String normalizePropertyName(String propertyName)
Normalize the property name (including namespace remapping). Asterisks are kept.- Parameters:
propertyName- the property name to normalize- Returns:
- the normalized (oak-) property name
-
normalizePath
protected String normalizePath(String path)
Validate and normalize the path.- Parameters:
path- the path to validate- Returns:
- the validated and normalized path
-
convertValueToType
protected PropertyValue convertValueToType(PropertyValue v, PropertyValue targetType)
-
getLocalPath
protected String getLocalPath(String path)
Calculate the session local path (the path excluding the workspace name) if possible.- Parameters:
path- the absolute path- Returns:
- the session local path, or null if not within this workspace
-
copyOf
@NotNull public @NotNull org.apache.jackrabbit.oak.query.ast.AstElement copyOf()
- Returns:
- a clone of self. Default implementation in
AstElementreturns same reference tothis.
-
-