Class CoalesceImpl
- java.lang.Object
-
- org.apache.jackrabbit.oak.query.ast.DynamicOperandImpl
-
- org.apache.jackrabbit.oak.query.ast.CoalesceImpl
-
public class CoalesceImpl extends DynamicOperandImpl
The function "coalesce(..)".
-
-
Constructor Summary
Constructors Constructor Description CoalesceImpl(DynamicOperandImpl operand1, DynamicOperandImpl operand2)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canRestrictSelector(SelectorImpl s)
Check whether the condition can be applied to a selector (to restrict the selector).protected PropertyValue
convertValueToType(PropertyValue v, PropertyValue targetType)
@NotNull org.apache.jackrabbit.oak.query.ast.AstElement
copyOf()
DynamicOperandImpl
createCopy()
PropertyValue
currentProperty()
String
getFunction(SelectorImpl s)
Get the function of a function-based index, in Polish notation.protected String
getLocalPath(String path)
Calculate the session local path (the path excluding the workspace name) if possible.DynamicOperandImpl
getOperand1()
DynamicOperandImpl
getOperand2()
QueryIndex.OrderEntry
getOrderEntry(SelectorImpl s, OrderingImpl o)
Create an entry for the "order by" list for a given filter.PropertyExistenceImpl
getPropertyExistence()
Get the property existence condition for this operand, if this operand is used as part of a condition.Set<SelectorImpl>
getSelectors()
Get the set of selectors for this operand.protected String
normalizePath(String path)
Validate and normalize the path.protected String
normalizePropertyName(String propertyName)
Normalize the property name (including namespace remapping).protected String
protect(Object expression)
protected String
quote(String pathOrName)
protected String
quoteJson(String string)
void
restrict(FilterImpl f, Operator operator, PropertyValue v)
Apply a restriction of type "this = value" to the given filter.void
restrictList(FilterImpl f, List<PropertyValue> list)
Apply a restriction of type "this in (list)" to the given filter.void
setQuery(QueryImpl query)
String
toString()
-
Methods inherited from class org.apache.jackrabbit.oak.query.ast.DynamicOperandImpl
equals, getOrderEntryPropertyName, hashCode, supportsRangeConditions
-
-
-
-
Field Detail
-
query
protected QueryImpl query
-
-
Constructor Detail
-
CoalesceImpl
public CoalesceImpl(DynamicOperandImpl operand1, DynamicOperandImpl operand2)
-
-
Method Detail
-
getOperand1
public DynamicOperandImpl getOperand1()
-
getOperand2
public DynamicOperandImpl getOperand2()
-
getPropertyExistence
public PropertyExistenceImpl getPropertyExistence()
Description copied from class:DynamicOperandImpl
Get the property existence condition for this operand, if this operand is used as part of a condition.- Specified by:
getPropertyExistence
in classDynamicOperandImpl
- Returns:
- the property existence condition, or null if none
-
getSelectors
public Set<SelectorImpl> getSelectors()
Description copied from class:DynamicOperandImpl
Get the set of selectors for this operand.- Specified by:
getSelectors
in classDynamicOperandImpl
- Returns:
- the set of selectors
-
currentProperty
public PropertyValue currentProperty()
- Specified by:
currentProperty
in classDynamicOperandImpl
-
restrict
public void restrict(FilterImpl f, Operator operator, PropertyValue v)
Description copied from class:DynamicOperandImpl
Apply a restriction of type "this = value" to the given filter.- Specified by:
restrict
in classDynamicOperandImpl
- Parameters:
f
- the filter where the restriction is applied.operator
- the operator (for example "=").v
- the value
-
restrictList
public void restrictList(FilterImpl f, List<PropertyValue> list)
Description copied from class:DynamicOperandImpl
Apply a restriction of type "this in (list)" to the given filter.- Specified by:
restrictList
in classDynamicOperandImpl
- Parameters:
f
- the filter where the restriction is applied.list
- the list of values
-
getFunction
public String getFunction(SelectorImpl s)
Description copied from class:DynamicOperandImpl
Get the function of a function-based index, in Polish notation.- Specified by:
getFunction
in classDynamicOperandImpl
- Parameters:
s
- the selector- Returns:
- the function, or null if not supported
-
canRestrictSelector
public boolean canRestrictSelector(SelectorImpl s)
Description copied from class:DynamicOperandImpl
Check whether the condition can be applied to a selector (to restrict the selector). The method may return true if the operand can be evaluated when the given selector and all previous selectors in the join can be evaluated.- Specified by:
canRestrictSelector
in classDynamicOperandImpl
- Parameters:
s
- the selector- Returns:
- true if the condition can be applied
-
createCopy
public DynamicOperandImpl createCopy()
- Specified by:
createCopy
in classDynamicOperandImpl
-
getOrderEntry
public QueryIndex.OrderEntry getOrderEntry(SelectorImpl s, OrderingImpl o)
Description copied from class:DynamicOperandImpl
Create an entry for the "order by" list for a given filter.- Specified by:
getOrderEntry
in classDynamicOperandImpl
- Parameters:
s
- the selectoro
- the ordering- Returns:
- the entry
-
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
AstElement
returns same reference tothis
.
-
-