Package classycle.graph
Class LongestWalkProcessor
- java.lang.Object
-
- classycle.graph.GraphProcessor
-
- classycle.graph.LongestWalkProcessor
-
public class LongestWalkProcessor extends GraphProcessor
Calculates for each vertex the longest walk. This processor assumes that the graph has no cycles.- Author:
- Franz-Josef Elmer
-
-
Constructor Summary
Constructors Constructor Description LongestWalkProcessor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
finishProcessing(Vertex[] graph)
Finishes processing by sorting the result in accordance with the walk length.protected void
initializeProcessing(Vertex[] graph)
Does nothing.protected void
processAfter(Vertex vertex)
Deactivate the specified vertex.protected void
processArc(Vertex tail, Vertex head)
Processes arc from tail to head.protected void
processBefore(Vertex vertex)
Resets the specified vertex.-
Methods inherited from class classycle.graph.GraphProcessor
deepSearchFirst, process
-
-
-
-
Method Detail
-
initializeProcessing
protected void initializeProcessing(Vertex[] graph)
Does nothing.- Specified by:
initializeProcessing
in classGraphProcessor
-
processBefore
protected void processBefore(Vertex vertex)
Resets the specified vertex.- Specified by:
processBefore
in classGraphProcessor
- Parameters:
vertex
- Vertex to be processed.- Throws:
java.lang.IllegalArgumentException
- if vertex is not an instance ofStrongComponent
.
-
processArc
protected void processArc(Vertex tail, Vertex head)
Processes arc from tail to head. Calculates the longest walk of tail.- Specified by:
processArc
in classGraphProcessor
- Parameters:
tail
- Tail vertex of the arc.head
- Head vertex of the arc.- Throws:
java.lang.IllegalArgumentException
- if both vertices are not instances ofStrongComponent
or if head is visited and active which indicates a cycle in the graph.
-
processAfter
protected void processAfter(Vertex vertex)
Deactivate the specified vertex.- Specified by:
processAfter
in classGraphProcessor
- Parameters:
vertex
- Vertex to be processed.- Throws:
java.lang.IllegalArgumentException
- if vertex is not an instance ofStrongComponent
.
-
finishProcessing
protected void finishProcessing(Vertex[] graph)
Finishes processing by sorting the result in accordance with the walk length.- Specified by:
finishProcessing
in classGraphProcessor
-
-