Class Vertex<T>

java.lang.Object
org.apache.myfaces.config.util.Vertex<T>
All Implemented Interfaces:
Comparable<Vertex<T>>

public final class Vertex<T> extends Object implements Comparable<Vertex<T>>
Vertex is used to track dependencies and each node in a graph. Typical uses would be to ensure components are started up and torn down in the proper order, or bundles were loaded and unloaded in the proper order, etc.
Version:
CVS $ Revision: 1.1 $
Author:
Avalon Development Team
  • Constructor Summary

    Constructors
    Constructor
    Description
    Vertex(String name, T node)
    A vertex wraps a node, which can be anything.
    Vertex(T node)
    A vertex wraps a node, which can be anything.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Add a dependecy to this Vertex.
    int
    Used in the sort algorithm to sort all the Vertices so that they respect the ordinal they were given during the topological sort.
    Get the list of dependencies.
    Returns the name of the Vertex.
    Get the wrapped node that this Vertex represents.
    int
    Get the ordinal for this vertex.
    void
    Reset the Vertex so that all the flags and runtime states are set back to the original values.
    void
    Recurse through the tree from this vertex assigning an order to each and at the same time checking for any cyclic dependencies.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Vertex

      public Vertex(T node)
      A vertex wraps a node, which can be anything.
      Parameters:
      node - The wrapped node.
    • Vertex

      public Vertex(String name, T node)
      A vertex wraps a node, which can be anything.
      Parameters:
      name - A name for the node which will be used to produce useful errors.
      node - The wrapped node.
  • Method Details

    • reset

      public void reset()
      Reset the Vertex so that all the flags and runtime states are set back to the original values.
    • getName

      public String getName()
      Returns the name of the Vertex.
      Returns:
      The name of the Vertex.
    • getNode

      public T getNode()
      Get the wrapped node that this Vertex represents.
      Returns:
      the node
    • addDependency

      public void addDependency(Vertex<T> v)
      Add a dependecy to this Vertex. The Vertex that this one depends on will be marked as referenced and then added to the list of dependencies. The list is checked before the dependency is added.
      Parameters:
      v - The vertex we depend on.
    • resolveOrder

      public void resolveOrder() throws CyclicDependencyException
      Recurse through the tree from this vertex assigning an order to each and at the same time checking for any cyclic dependencies.
      Throws:
      CyclicDependencyException - If a cyclic dependency is discovered.
    • getDependencies

      public List<Vertex<T>> getDependencies()
      Get the list of dependencies.
      Returns:
      The list of dependencies.
    • compareTo

      public int compareTo(Vertex<T> o)
      Used in the sort algorithm to sort all the Vertices so that they respect the ordinal they were given during the topological sort.
      Specified by:
      compareTo in interface Comparable<T>
      Parameters:
      o - The other Vertex to compare with
      Returns:
      -1 if this < o, 0 if this == o, or 1 if this > o
    • getOrder

      public int getOrder()
      Get the ordinal for this vertex.
      Returns:
      the order.