Class GraphAnalyzer

java.lang.Object
org.mapstruct.ap.internal.model.dependency.GraphAnalyzer

public class GraphAnalyzer extends Object
Analyzes graphs: Discovers all descendants of given nodes and detects cyclic dependencies between nodes if present.
Author:
Gunnar Morling
  • Method Details

    • builder

      public static GraphAnalyzer.GraphAnalyzerBuilder builder()
    • withNode

      public static GraphAnalyzer.GraphAnalyzerBuilder withNode(String name, String... descendants)
    • getTraversalSequence

      public int getTraversalSequence(String name)
      Returns the traversal sequence number of the given node. The ascending order of the traversal sequence numbers of multiple nodes represents the depth-first traversal order of those nodes.

      Note: The traversal sequence numbers will only be complete if the graph contains no cycles.

      Parameters:
      name - the node name to get the traversal sequence number for
      Returns:
      the traversal sequence number, or -1 if the node doesn't exist or the node was not visited (in case of cycles).
    • getCycles

      public Set<List<String>> getCycles()