com.ptc.windchill.upgrade.ius
Class DependencyGraphModel.CycleDetector

java.lang.Object
  extended bycom.ptc.windchill.upgrade.ius.DependencyGraphModel.CycleDetector
Enclosing class:
DependencyGraphModel

private class DependencyGraphModel.CycleDetector
extends Object

Searches for cycles in the dependency graph. Currently, it is a brute force search with recursively traverses from each node along all possible paths to graph leaves. If a cycle is detected in this recursion, then an exception will be thrown.


Field Summary
private  Stack edgeStack_
           
private  HashSet nodeSet_
           
private  DependencyGraphModel.Node rootNode_
           
 
Constructor Summary
DependencyGraphModel.CycleDetector()
          Create an instance.
 
Method Summary
private  void checkForCycleFrom(DependencyGraphModel.Node node)
           
 void checkForCycles()
          Perform the check.
private  void recursivelyCheckForCycleFrom(DependencyGraphModel.Node node)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

edgeStack_

private Stack edgeStack_

rootNode_

private DependencyGraphModel.Node rootNode_

nodeSet_

private HashSet nodeSet_
Constructor Detail

DependencyGraphModel.CycleDetector

public DependencyGraphModel.CycleDetector()
Create an instance.

Method Detail

checkForCycles

public void checkForCycles()
                    throws DependencyException
Perform the check.

Throws:
DependencyException

checkForCycleFrom

private void checkForCycleFrom(DependencyGraphModel.Node node)
                        throws DependencyException
Throws:
DependencyException

recursivelyCheckForCycleFrom

private void recursivelyCheckForCycleFrom(DependencyGraphModel.Node node)
                                   throws DependencyException
Throws:
DependencyException