Class 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 Detail

      • LongestWalkProcessor

        public LongestWalkProcessor()
    • Method Detail

      • processBefore

        protected void processBefore​(Vertex vertex)
        Resets the specified vertex.
        Specified by:
        processBefore in class GraphProcessor
        Parameters:
        vertex - Vertex to be processed.
        Throws:
        java.lang.IllegalArgumentException - if vertex is not an instance of StrongComponent.
      • processArc

        protected void processArc​(Vertex tail,
                                  Vertex head)
        Processes arc from tail to head. Calculates the longest walk of tail.
        Specified by:
        processArc in class GraphProcessor
        Parameters:
        tail - Tail vertex of the arc.
        head - Head vertex of the arc.
        Throws:
        java.lang.IllegalArgumentException - if both vertices are not instances of StrongComponent 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 class GraphProcessor
        Parameters:
        vertex - Vertex to be processed.
        Throws:
        java.lang.IllegalArgumentException - if vertex is not an instance of StrongComponent.
      • finishProcessing

        protected void finishProcessing​(Vertex[] graph)
        Finishes processing by sorting the result in accordance with the walk length.
        Specified by:
        finishProcessing in class GraphProcessor