|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.neo4j.tooling.wrap.WrappedNode<G>
public abstract class WrappedNode<G extends WrappedGraphDatabase>
Field Summary | |
---|---|
protected G |
graphdb
|
Constructor Summary | |
---|---|
protected |
WrappedNode(G graphdb)
|
Method Summary | |
---|---|
protected abstract T |
actual()
|
Relationship |
createRelationshipTo(Node otherNode,
RelationshipType type)
Creates a relationship between this node and another node. |
void |
delete()
Deletes this node if it has no relationships attached to it. |
boolean |
equals(Object obj)
|
GraphDatabaseService |
getGraphDatabase()
Get the GraphDatabaseService that this Node or
Relationship belongs to. |
long |
getId()
Returns the unique id of this node. |
Object |
getProperty(String key)
Returns the property value associated with the given key. |
Object |
getProperty(String key,
Object defaultValue)
Returns the property value associated with the given key, or a default value. |
Iterable<String> |
getPropertyKeys()
Returns all existing property keys, or an empty iterable if this property container has no properties. |
Iterable<Object> |
getPropertyValues()
Returns all currently valid property values, or an empty iterable if this node has no properties. |
Iterable<Relationship> |
getRelationships()
Returns all the relationships attached to this node. |
Iterable<Relationship> |
getRelationships(Direction dir)
Returns all OUTGOING or
INCOMING relationships from this node. |
Iterable<Relationship> |
getRelationships(Direction direction,
RelationshipType... types)
Returns all the relationships of any of the types in types
that are attached to this node and have the given direction . |
Iterable<Relationship> |
getRelationships(RelationshipType... types)
Returns all the relationships of any of the types in types
that are attached to this node, regardless of direction. |
Iterable<Relationship> |
getRelationships(RelationshipType type,
Direction dir)
Returns all relationships with the given type and direction that are attached to this node. |
Relationship |
getSingleRelationship(RelationshipType type,
Direction dir)
Returns the only relationship of a given type and direction that is attached to this node, or null . |
int |
hashCode()
|
boolean |
hasProperty(String key)
Returns true if this property container has a property
accessible through the given key, false otherwise. |
boolean |
hasRelationship()
Returns true if there are any relationships attached to this
node, false otherwise. |
boolean |
hasRelationship(Direction dir)
Returns true if there are any relationships in the given
direction attached to this node, false otherwise. |
boolean |
hasRelationship(Direction direction,
RelationshipType... types)
Returns true if there are any relationships of any of the
types in types attached to this node (for the given
direction ), false otherwise. |
boolean |
hasRelationship(RelationshipType... types)
Returns true if there are any relationships of any of the
types in types attached to this node (regardless of
direction), false otherwise. |
boolean |
hasRelationship(RelationshipType type,
Direction dir)
Returns true if there are any relationships of the given
relationship type and direction attached to this node, false
otherwise. |
Object |
removeProperty(String key)
Removes the property associated with the given key and returns the old value. |
void |
setProperty(String key,
Object value)
Sets the property value for the given key to value . |
String |
toString()
|
Traverser |
traverse(Traverser.Order traversalOrder,
StopEvaluator stopEvaluator,
ReturnableEvaluator returnableEvaluator,
Object... relationshipTypesAndDirections)
Instantiates a traverser that will start at this node and traverse according to the given order and evaluators along the specified relationship type and direction pairs. |
Traverser |
traverse(Traverser.Order traversalOrder,
StopEvaluator stopEvaluator,
ReturnableEvaluator returnableEvaluator,
RelationshipType relationshipType,
Direction direction)
Instantiates a traverser that will start at this node and traverse according to the given order and evaluators along the specified relationship type and direction. |
Traverser |
traverse(Traverser.Order traversalOrder,
StopEvaluator stopEvaluator,
ReturnableEvaluator returnableEvaluator,
RelationshipType firstRelationshipType,
Direction firstDirection,
RelationshipType secondRelationshipType,
Direction secondDirection)
Instantiates a traverser that will start at this node and traverse according to the given order and evaluators along the two specified relationship type and direction pairs. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.neo4j.graphdb.PropertyContainer |
---|
getGraphDatabase, getProperty, getProperty, getPropertyKeys, getPropertyValues, hasProperty, removeProperty, setProperty |
Field Detail |
---|
protected final G extends WrappedGraphDatabase graphdb
Constructor Detail |
---|
protected WrappedNode(G graphdb)
Method Detail |
---|
public long getId()
Node
getId
in interface Node
public void delete()
Node
delete()
is invoked on a node with relationships, an
unchecked exception will be raised when the transaction is committing.
Invoking any methods on this node after delete()
has
returned is invalid and will lead to unspecified behavior.
delete
in interface Node
public Iterable<Relationship> getRelationships()
Node
getRelationships
in interface Node
public boolean hasRelationship()
Node
true
if there are any relationships attached to this
node, false
otherwise.
hasRelationship
in interface Node
true
if there are any relationships attached to this
node, false
otherwisepublic Iterable<Relationship> getRelationships(RelationshipType... types)
Node
types
that are attached to this node, regardless of direction. If no
relationships of the given types are attached to this node, an empty
iterable will be returned.
getRelationships
in interface Node
types
- the given relationship type(s)
public Iterable<Relationship> getRelationships(Direction direction, RelationshipType... types)
Node
types
that are attached to this node and have the given direction
.
If no relationships of the given types are attached to this node, an empty
iterable will be returned.
getRelationships
in interface Node
direction
- the direction of the relationships to return.types
- the given relationship type(s)
public boolean hasRelationship(RelationshipType... types)
Node
true
if there are any relationships of any of the
types in types
attached to this node (regardless of
direction), false
otherwise.
hasRelationship
in interface Node
types
- the given relationship type(s)
true
if there are any relationships of any of the
types in types
attached to this node,
false
otherwisepublic boolean hasRelationship(Direction direction, RelationshipType... types)
Node
true
if there are any relationships of any of the
types in types
attached to this node (for the given
direction
), false
otherwise.
hasRelationship
in interface Node
direction
- the direction to check relationships fortypes
- the given relationship type(s)
true
if there are any relationships of any of the
types in types
attached to this node,
false
otherwisepublic Iterable<Relationship> getRelationships(Direction dir)
Node
OUTGOING
or
INCOMING
relationships from this node. If
there are no relationships with the given direction attached to this
node, an empty iterable will be returned. If BOTH
is passed in as a direction, relationships of both directions are
returned (effectively turning this into getRelationships()
).
getRelationships
in interface Node
dir
- the given direction, where Direction.OUTGOING
means all relationships that have this node as
start node
and
Direction.INCOMING
means all relationships that have this node as
end node
public boolean hasRelationship(Direction dir)
Node
true
if there are any relationships in the given
direction attached to this node, false
otherwise. If
BOTH
is passed in as a direction, relationships of
both directions are matched (effectively turning this into
hasRelationships()
).
hasRelationship
in interface Node
dir
- the given direction, where Direction.OUTGOING
means all relationships that have this node as
start node
and
Direction.INCOMING
means all relationships that have this node as
end node
true
if there are any relationships in the given
direction attached to this node, false
otherwisepublic Iterable<Relationship> getRelationships(RelationshipType type, Direction dir)
Node
getRelationships
in interface Node
type
- the given typedir
- the given direction, where Direction.OUTGOING
means all relationships that have this node as
start node
and
Direction.INCOMING
means all relationships that have this node as
end node
public boolean hasRelationship(RelationshipType type, Direction dir)
Node
true
if there are any relationships of the given
relationship type and direction attached to this node, false
otherwise.
hasRelationship
in interface Node
type
- the given typedir
- the given direction, where Direction.OUTGOING
means all relationships that have this node as
start node
and
Direction.INCOMING
means all relationships that have this node as
end node
true
if there are any relationships of the given
relationship type and direction attached to this node,
false
otherwisepublic Relationship getSingleRelationship(RelationshipType type, Direction dir)
Node
null
. This is a convenience method
that is used in the commonly occuring situation where a node has exactly
zero or one relationships of a given type and direction to another node.
Typically this invariant is maintained by the rest of the code: if at any
time more than one such relationships exist, it is a fatal error that
should generate an unchecked exception. This method reflects that
semantics and returns either:
null
if there are zero relationships of the given type
and direction,
This method should be used only in situations with an invariant as
described above. In those situations, a "state-checking" method (e.g.
hasSingleRelationship(...)
) is not required, because this
method behaves correctly "out of the box."
getSingleRelationship
in interface Node
type
- the type of the wanted relationshipdir
- the direction of the wanted relationship (where
Direction.OUTGOING
means a relationship that has
this node as start node
and
Direction.INCOMING
means a relationship that has
this node as end node
) or
Direction.BOTH
if direction is irrelevant
null
if
exactly zero such relationships existspublic Relationship createRelationshipTo(Node otherNode, RelationshipType type)
Node
type
. It starts at this node and
ends at otherNode
.
A relationship is equally well traversed in both directions so there's no need to create another relationship in the opposite direction (in regards to traversal or performance).
createRelationshipTo
in interface Node
otherNode
- the end node of the new relationshiptype
- the type of the new relationship
public Traverser traverse(Traverser.Order traversalOrder, StopEvaluator stopEvaluator, ReturnableEvaluator returnableEvaluator, RelationshipType relationshipType, Direction direction)
Node
RelationshipType
/Direction
pair, use
one of the overloaded variants of this method. The created traverser will
iterate over each node that can be reached from this node by the spanning
tree formed by the given relationship types (with direction) exactly
once. For more information about traversal, see the Traverser
documentation.
traverse
in interface Node
traversalOrder
- the traversal orderstopEvaluator
- an evaluator instructing the new traverser about
when to stop traversing, either a predefined evaluator such as
StopEvaluator.END_OF_GRAPH
or a custom-written
evaluatorreturnableEvaluator
- an evaluator instructing the new traverser
about whether a specific node should be returned from the
traversal, either a predefined evaluator such as
ReturnableEvaluator.ALL
or a customer-written
evaluatorrelationshipType
- the relationship type that the traverser will
traverse alongdirection
- the direction in which the relationships of type
relationshipType
will be traversed
public Traverser traverse(Traverser.Order traversalOrder, StopEvaluator stopEvaluator, ReturnableEvaluator returnableEvaluator, RelationshipType firstRelationshipType, Direction firstDirection, RelationshipType secondRelationshipType, Direction secondDirection)
Node
RelationshipType
/Direction
pairs,
use the overloaded
varargs variant
of this method. The created traverser will iterate over
each node that can be reached from this node by the spanning tree formed
by the given relationship types (with direction) exactly once. For more
information about traversal, see the Traverser
documentation.
traverse
in interface Node
traversalOrder
- the traversal orderstopEvaluator
- an evaluator instructing the new traverser about
when to stop traversing, either a predefined evaluator such as
StopEvaluator.END_OF_GRAPH
or a custom-written
evaluatorreturnableEvaluator
- an evaluator instructing the new traverser
about whether a specific node should be returned from the
traversal, either a predefined evaluator such as
ReturnableEvaluator.ALL
or a customer-written
evaluatorfirstRelationshipType
- the first of the two relationship types that
the traverser will traverse alongfirstDirection
- the direction in which the first relationship type
will be traversedsecondRelationshipType
- the second of the two relationship types
that the traverser will traverse alongsecondDirection
- the direction that the second relationship type
will be traversed
public Traverser traverse(Traverser.Order traversalOrder, StopEvaluator stopEvaluator, ReturnableEvaluator returnableEvaluator, Object... relationshipTypesAndDirections)
Node
node.traverse( BREADTH_FIRST, stopEval, returnableEval,
MyRels.REL1, Direction.OUTGOING, MyRels.REL2, Direction.OUTGOING,
MyRels.REL3, Direction.BOTH, MyRels.REL4, Direction.INCOMING );
Unfortunately, the compiler cannot enforce this so an unchecked exception is raised if the variable-length argument has a different constitution.
The created traverser will iterate over each node that can be reached
from this node by the spanning tree formed by the given relationship
types (with direction) exactly once. For more information about
traversal, see the Traverser
documentation.
traverse
in interface Node
traversalOrder
- the traversal orderstopEvaluator
- an evaluator instructing the new traverser about
when to stop traversing, either a predefined evaluator such as
StopEvaluator.END_OF_GRAPH
or a custom-written
evaluatorreturnableEvaluator
- an evaluator instructing the new traverser
about whether a specific node should be returned from the
traversal, either a predefined evaluator such as
ReturnableEvaluator.ALL
or a customer-written
evaluatorrelationshipTypesAndDirections
- a variable-length list of
relationship types and their directions, where the first
argument is a relationship type, the second argument the first
type's direction, the third a relationship type, the fourth
its direction, etc
protected abstract T actual()
public int hashCode()
hashCode
in class Object
public boolean equals(Object obj)
equals
in class Object
public String toString()
toString
in class Object
public GraphDatabaseService getGraphDatabase()
PropertyContainer
GraphDatabaseService
that this Node
or
Relationship
belongs to.
getGraphDatabase
in interface PropertyContainer
public boolean hasProperty(String key)
PropertyContainer
true
if this property container has a property
accessible through the given key, false
otherwise. If key is
null
, this method returns false
.
hasProperty
in interface PropertyContainer
key
- the property key
true
if this property container has a property
accessible through the given key, false
otherwisepublic Object getProperty(String key)
PropertyContainer
String
or an array of any of the valid types.
If there's no property associated with key
an unchecked
exception is raised. The idiomatic way to avoid an exception for an
unknown key and instead get null
back is to use a default
value: Object valueOrNull =
nodeOrRel.getProperty( key, null )
getProperty
in interface PropertyContainer
key
- the property key
public Object getProperty(String key, Object defaultValue)
PropertyContainer
String
or an array of any of the valid types.
getProperty
in interface PropertyContainer
key
- the property keydefaultValue
- the default value that will be returned if no
property value was associated with the given key
public void setProperty(String key, Object value)
PropertyContainer
value
. The
property value must be one of the valid property types, i.e:
boolean
or boolean[]
byte
or byte[]
short
or short[]
int
or int[]
long
or long[]
float
or float[]
double
or double[]
char
or char[]
java.lang.String
or String[]
This means that null
is not an accepted property value.
setProperty
in interface PropertyContainer
key
- the key with which the new property value will be associatedvalue
- the new property value, of one of the valid property typespublic Object removeProperty(String key)
PropertyContainer
null
will be returned.
removeProperty
in interface PropertyContainer
key
- the property key
public Iterable<String> getPropertyKeys()
PropertyContainer
getPropertyKeys
in interface PropertyContainer
public Iterable<Object> getPropertyValues()
PropertyContainer
String
or an array of any of the
supported types.
Note: This method is deprecated and will be removed in
future releases. Use a combination of PropertyContainer.getPropertyKeys()
and
PropertyContainer.getProperty(String)
to achieve the same result.
getPropertyValues
in interface PropertyContainer
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |