Overview | Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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

Field Summary
`protected EdgePattern` | `pattern`
`protected GraphState` | `state`

Fields inherited from interface de.grogra.graph.Visitor
`STOP`

Constructor Summary
`VisitorImpl()`

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`

Field Detail

### pattern

    protected EdgePattern pattern

### state

    protected GraphState state

Constructor Detail

### VisitorImpl

    public VisitorImpl()

Method Detail

### 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 path
    `node` - 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

Overview | Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD