de.grogra.graph
Class VisitorImpl
java.lang.Object
de.grogra.graph.VisitorImpl
- All Implemented Interfaces:
- Visitor
public abstract class VisitorImpl
- extends java.lang.Object
- implements Visitor
Fields inherited from interface de.grogra.graph.Visitor |
STOP |
Method Summary |
GraphState |
getGraphState()
Returns the graph state within which the visitor is operating. |
void |
init(GraphState gs,
EdgePattern pattern)
|
java.lang.Object |
visitEnter(Path path,
boolean node)
Informs this visitor about a node or edge in the graph. |
java.lang.Object |
visitInstanceEnter()
Informs this visitor about the beginning of an instantiation. |
boolean |
visitInstanceLeave(java.lang.Object o)
Informs this visitor that an instantiation has been processed
completely. |
boolean |
visitLeave(java.lang.Object o,
Path path,
boolean node)
Informs this visitor that a node or an edge has been processed
completely. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
pattern
protected EdgePattern pattern
state
protected GraphState state
VisitorImpl
public VisitorImpl()
getGraphState
public GraphState getGraphState()
- Description copied from interface:
Visitor
- Returns the graph state within which the visitor is operating.
- Specified by:
getGraphState
in interface Visitor
- Returns:
- graph state of visitor
init
public void init(GraphState gs,
EdgePattern pattern)
visitEnter
public java.lang.Object visitEnter(Path path,
boolean node)
- Description copied from interface:
Visitor
- Informs this visitor about a node or edge in the graph.
path
contains the path from the root up to and including
the node or, in case an edge is visited, the edge and its terminal node. Later on,
Visitor.visitLeave(java.lang.Object, de.grogra.graph.Path, boolean)
will be invoked with
the returned value of this invocation, path
and node
as arguments. If this method returns
Visitor.STOP
, the corresponding visitLeave
-method
will be invoked immediately after this method, i.e., the visitor
does not dive more deeply in the hierarchy. Otherwise, if a
node is visited and there
are instantiations associated with or edges connected with
it (regardless of their direction), their corresponding visitor methods will be invoked
inbetween. Likewise, if an edge is visited, its indicent terminal node
will be visited next.
- Specified by:
visitEnter
in interface Visitor
- Parameters:
path
- current pathnode
- do we enter a node or an edge?
- Returns:
- value to pass to
visitLeave
, may be Visitor.STOP
visitInstanceEnter
public java.lang.Object visitInstanceEnter()
- Description copied from interface:
Visitor
- Informs this visitor about the beginning of an instantiation.
This method invokation is nested immediately within
visitEnter
/visitLeave
of a node. Later on,
Visitor.visitInstanceLeave(Object)
will be invoked with
the returned value of this invocation as argument. If this method returns
Visitor.STOP
, the visitInstanceLeave
-method
will be invoked immediately after this method, i.e., the visitor
does not dive into the instantiation. Otherwise, the instantiation
is performed, starting with an edge.
- Specified by:
visitInstanceEnter
in interface Visitor
- Returns:
- value to pass to
visitInstanceLeave
, may be Visitor.STOP
visitInstanceLeave
public boolean visitInstanceLeave(java.lang.Object o)
- Description copied from interface:
Visitor
- Informs this visitor that an instantiation has been processed
completely. The value
o
is the return value
of the corresponding invocation of Visitor.visitInstanceEnter()
.
If this invocation returns false
, no further
instantiations or edges of the current level of hierarchy will
be passed to this
visitor, i.e., the visitLeave
method for the enclosing
node will be invoked immediately.
- Specified by:
visitInstanceLeave
in interface Visitor
- Parameters:
o
- returned value of visitInstanceEnter
- Returns:
true
iff processing of current level shall be continued
visitLeave
public boolean visitLeave(java.lang.Object o,
Path path,
boolean node)
- Description copied from interface:
Visitor
- Informs this visitor that a node or an edge has been processed
completely. The value
o
is the return value
of the corresponding invocation of Visitor.visitEnter(de.grogra.graph.Path, boolean)
.
In case of a node and if this invocation returns false
, no further
edges of the current level of hierarchy will be passed to this
visitor, i.e., the visitLeave
methods for the enclosing
edge and node will be invoked immediately.
Likewise, in case of an edge and a return value false
, no further
instantiations or edges of the current level of hierarchy
will be passed to this
visitor, i.e., the visitLeave
method for the enclosing
node will be invoked immediately.
- Specified by:
visitLeave
in interface Visitor
- Parameters:
o
- returned value of visitEnter
path
- current path to node
node
- do we leave a node or an edge?
- Returns:
true
iff processing of current level shall be continued