org.apache.jackrabbit.spi.commons.query
Class RelationQueryNode

java.lang.Object
  extended by org.apache.jackrabbit.spi.commons.query.QueryNode
      extended by org.apache.jackrabbit.spi.commons.query.NAryQueryNode<QueryNode>
          extended by 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
static Name STAR_NAME_TEST
          Acts as an syntetic 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
protected RelationQueryNode(QueryNode parent, int operation, QueryNodeFactory factory)
          Creates a new RelationQueryNode without a type nor value assigned.
 
Method Summary
 Object accept(QueryNodeVisitor visitor, Object data)
          Accepts a QueryNodeVisitor and calls the apropriate visit method on the visitor depending on the concrete implementation of this QueryNode.
 void addPathElement(Path.Element element)
          Adds a path element to the existing relative path.
 boolean equals(Object obj)
          Returns true if obj is the same type of QueryNode as this node and is equal to this node.
 Date getDateValue()
          Returns the Date value if this relation if of type QueryConstants.TYPE_DATE.
 double getDoubleValue()
          Returns the double value if this relation if of type QueryConstants.TYPE_DOUBLE.
 long getLongValue()
          Returns the long value if this relation if of type QueryConstants.TYPE_LONG.
 int getOperation()
          Returns the operation type.
 int getPositionValue()
          Returns the int position index value if this relation is of type QueryConstants.TYPE_POSITION.
 PathQueryNode getRelativePath()
           
 String getStringValue()
          Returns the String value if this relation if of type QueryConstants.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 type Date.
 void setDoubleValue(double value)
          Sets a new value of type double.
 void setLongValue(long value)
          Sets a new value of type long.
 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 type String.
 void setUnaryMinus(boolean b)
          If b is true 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
 
Methods inherited from class org.apache.jackrabbit.spi.commons.query.QueryNode
dump, getParent
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STAR_NAME_TEST

public static final Name STAR_NAME_TEST
Acts as an syntetic placeholder for a location step that matches any name. This is required becase 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 new RelationQueryNode 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 a QueryNodeVisitor and calls the apropriate visit method on the visitor depending on the concrete implementation of this QueryNode.

Specified by:
accept in class QueryNode
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.

Specified by:
getType in class QueryNode
Returns:
the type of this node.

setUnaryMinus

public void setUnaryMinus(boolean b)
If b is true 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 - if relPath 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 use STAR_NAME_TEST.

Parameters:
element - the path element to append.

getLongValue

public long getLongValue()
Returns the long value if this relation if of type QueryConstants.TYPE_LONG.

Returns:
the long value.

setLongValue

public void setLongValue(long value)
Sets a new value of type long.

Parameters:
value - the new value.

getPositionValue

public int getPositionValue()
Returns the int position index value if this relation is of type QueryConstants.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 the double value if this relation if of type QueryConstants.TYPE_DOUBLE.

Returns:
the double value.

setDoubleValue

public void setDoubleValue(double value)
Sets a new value of type double.

Parameters:
value - the new value.

getStringValue

public String getStringValue()
Returns the String value if this relation if of type QueryConstants.TYPE_STRING.

Returns:
the String value.

setStringValue

public void setStringValue(String value)
Sets a new value of type String.

Parameters:
value - the new value.

getDateValue

public Date getDateValue()
Returns the Date value if this relation if of type QueryConstants.TYPE_DATE.

Returns:
the Date value.

setDateValue

public void setDateValue(Date value)
Sets a new value of type Date.

Parameters:
value - the new value.

getOperation

public int getOperation()
Returns the operation type.

Returns:
the operation type.

equals

public boolean equals(Object obj)
Description copied from class: QueryNode
Returns true if obj is the same type of QueryNode as this node and is equal to this node.

Overrides:
equals in class NAryQueryNode<QueryNode>
Parameters:
obj - the reference object with which to compare.
Returns:
true if obj is equal to this; false otherwise.


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.