Class RelationQueryNode
- java.lang.Object
-
- org.apache.jackrabbit.spi.commons.query.QueryNode
-
- org.apache.jackrabbit.spi.commons.query.NAryQueryNode<QueryNode>
-
- org.apache.jackrabbit.spi.commons.query.RelationQueryNode
-
- All Implemented Interfaces:
QueryConstants
public class RelationQueryNode extends NAryQueryNode<QueryNode> implements QueryConstants
Implements a query node that defines property value relation.
-
-
Field Summary
Fields Modifier and Type Field Description static Name
STAR_NAME_TEST
Acts as an synthetic placeholder for a location step that matches any name.-
Fields inherited from class org.apache.jackrabbit.spi.commons.query.NAryQueryNode
operands
-
Fields inherited from class org.apache.jackrabbit.spi.commons.query.QueryNode
TYPE_AND, TYPE_DEREF, TYPE_EXACT, TYPE_LOCATION, TYPE_NODETYPE, TYPE_NOT, TYPE_OR, TYPE_ORDER, TYPE_PATH, TYPE_PROP_FUNCTION, TYPE_RELATION, TYPE_ROOT, TYPE_TEXTSEARCH
-
Fields inherited from interface org.apache.jackrabbit.spi.commons.query.QueryConstants
OP_NAME_BETWEEN, OP_NAME_EQ_GENERAL, OP_NAME_EQ_VALUE, OP_NAME_GE_GENERAL, OP_NAME_GE_VALUE, OP_NAME_GT_GENERAL, OP_NAME_GT_VALUE, OP_NAME_IN, OP_NAME_LE_GENERAL, OP_NAME_LE_VALUE, OP_NAME_LIKE, OP_NAME_LT_GENERAL, OP_NAME_LT_VALUE, OP_NAME_NE_GENERAL, OP_NAME_NE_VALUE, OP_NAME_NOT_NULL, OP_NAME_NULL, OP_NAME_SIMILAR, OP_NAME_SPELLCHECK, OP_NAME_UNKNOW, OPERATION_BETWEEN, OPERATION_EQ_GENERAL, OPERATION_EQ_VALUE, OPERATION_GE_GENERAL, OPERATION_GE_VALUE, OPERATION_GT_GENERAL, OPERATION_GT_VALUE, OPERATION_IN, OPERATION_LE_GENERAL, OPERATION_LE_VALUE, OPERATION_LIKE, OPERATION_LT_GENERAL, OPERATION_LT_VALUE, OPERATION_NAMES, OPERATION_NE_GENERAL, OPERATION_NE_VALUE, OPERATION_NOT_NULL, OPERATION_NULL, OPERATION_SIMILAR, OPERATION_SPELLCHECK, OPERATIONS, TYPE_DATE, TYPE_DOUBLE, TYPE_LONG, TYPE_NAME_DATE, TYPE_NAME_DOUBLE, TYPE_NAME_LONG, TYPE_NAME_POSITION, TYPE_NAME_STRING, TYPE_NAME_TIMESTAMP, TYPE_NAME_UNKNOWN, TYPE_NAMES, TYPE_POSITION, TYPE_STRING, TYPE_TIMESTAMP
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
RelationQueryNode(QueryNode parent, int operation, QueryNodeFactory factory)
Creates a newRelationQueryNode
without a type nor value assigned.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
accept(QueryNodeVisitor visitor, Object data)
Accepts aQueryNodeVisitor
and calls the appropriatevisit
method on the visitor depending on the concrete implementation of thisQueryNode
.void
addPathElement(Path.Element element)
Adds a path element to the existing relative path.boolean
equals(Object obj)
Returnstrue
ifobj
is the same type ofQueryNode
asthis
node and is equal tothis
node.Date
getDateValue()
Returns theDate
value if this relation if of typeQueryConstants.TYPE_DATE
.double
getDoubleValue()
Returns thedouble
value if this relation if of typeQueryConstants.TYPE_DOUBLE
.long
getLongValue()
Returns thelong
value if this relation if of typeQueryConstants.TYPE_LONG
.int
getOperation()
Returns the operation type.int
getPositionValue()
Returns theint
position index value if this relation is of typeQueryConstants.TYPE_POSITION
.PathQueryNode
getRelativePath()
String
getStringValue()
Returns theString
value if this relation if of typeQueryConstants.TYPE_STRING
.int
getType()
Returns the type of this node.int
getValueType()
Returns the type of the value.void
setDateValue(Date value)
Sets a new value of typeDate
.void
setDoubleValue(double value)
Sets a new value of typedouble
.void
setLongValue(long value)
Sets a new value of typelong
.void
setPositionValue(int value)
Sets a new value for the position index.void
setRelativePath(Path relPath)
Sets the relative path to the property in this relation.void
setStringValue(String value)
Sets a new value of typeString
.void
setUnaryMinus(boolean b)
Ifb
istrue
then the value in this relation node contains a receding unary minus.-
Methods inherited from class org.apache.jackrabbit.spi.commons.query.NAryQueryNode
acceptOperands, addOperand, getNumOperands, getOperands, needsSystemTree, removeOperand
-
-
-
-
Field Detail
-
STAR_NAME_TEST
public static final Name STAR_NAME_TEST
Acts as an synthetic placeholder for a location step that matches any name. This is required because a JCR path does not allow a Name with a single '*' (star) character.
-
-
Constructor Detail
-
RelationQueryNode
protected RelationQueryNode(QueryNode parent, int operation, QueryNodeFactory factory)
Creates a newRelationQueryNode
without a type nor value assigned.- Parameters:
parent
- the parent node for this query node.operation
- the operation.factory
- the query node factory.
-
-
Method Detail
-
accept
public Object accept(QueryNodeVisitor visitor, Object data) throws RepositoryException
Accepts aQueryNodeVisitor
and calls the appropriatevisit
method on the visitor depending on the concrete implementation of thisQueryNode
.- Specified by:
accept
in classQueryNode
- Parameters:
visitor
- the visitor to call back.data
- arbitrary data for the visitor.- Returns:
- the return value of the
visitor.visit()
call. - Throws:
RepositoryException
-
getType
public int getType()
Returns the type of this node.
-
setUnaryMinus
public void setUnaryMinus(boolean b)
Ifb
istrue
then the value in this relation node contains a receding unary minus.- Parameters:
b
-true
if this relation contains a unary minus.
-
getValueType
public int getValueType()
Returns the type of the value.- Returns:
- the type of the value.
-
getRelativePath
public PathQueryNode getRelativePath()
- Returns:
- the relative path that references the property in this relation.
-
setRelativePath
public void setRelativePath(Path relPath)
Sets the relative path to the property in this relation.- Parameters:
relPath
- the relative path to a property.- Throws:
IllegalArgumentException
- ifrelPath
is absolute.
-
addPathElement
public void addPathElement(Path.Element element)
Adds a path element to the existing relative path. To add a path element which matches all node names useSTAR_NAME_TEST
.- Parameters:
element
- the path element to append.
-
getLongValue
public long getLongValue()
Returns thelong
value if this relation if of typeQueryConstants.TYPE_LONG
.- Returns:
- the
long
value.
-
setLongValue
public void setLongValue(long value)
Sets a new value of typelong
.- Parameters:
value
- the new value.
-
getPositionValue
public int getPositionValue()
Returns theint
position index value if this relation is of typeQueryConstants.TYPE_POSITION
.- Returns:
- the position index value.
-
setPositionValue
public void setPositionValue(int value)
Sets a new value for the position index.- Parameters:
value
- the new value.
-
getDoubleValue
public double getDoubleValue()
Returns thedouble
value if this relation if of typeQueryConstants.TYPE_DOUBLE
.- Returns:
- the
double
value.
-
setDoubleValue
public void setDoubleValue(double value)
Sets a new value of typedouble
.- Parameters:
value
- the new value.
-
getStringValue
public String getStringValue()
Returns theString
value if this relation if of typeQueryConstants.TYPE_STRING
.- Returns:
- the
String
value.
-
setStringValue
public void setStringValue(String value)
Sets a new value of typeString
.- Parameters:
value
- the new value.
-
getDateValue
public Date getDateValue()
Returns theDate
value if this relation if of typeQueryConstants.TYPE_DATE
.- Returns:
- the
Date
value.
-
setDateValue
public void setDateValue(Date value)
Sets a new value of typeDate
.- Parameters:
value
- the new value.
-
getOperation
public int getOperation()
Returns the operation type.- Returns:
- the operation type.
-
equals
public boolean equals(Object obj)
Returnstrue
ifobj
is the same type ofQueryNode
asthis
node and is equal tothis
node.- Overrides:
equals
in classNAryQueryNode<QueryNode>
- Parameters:
obj
- the reference object with which to compare.- Returns:
true
ifobj
is equal tothis
;false
otherwise.
-
-