de.cau.cs.kieler.klay.layered.p1cycles
Class GreedyCycleBreaker

java.lang.Object
  extended by de.cau.cs.kieler.core.alg.AbstractAlgorithm
      extended by de.cau.cs.kieler.klay.layered.p1cycles.GreedyCycleBreaker
All Implemented Interfaces:
IAlgorithm, ILayoutPhase, ILayoutProcessor

public class GreedyCycleBreaker
extends AbstractAlgorithm
implements ILayoutPhase

Cycle breaker implementation that uses a greedy algorithm. Inspired by Section 9.4 of

This cycle breaker doesn't support layer constraints out of the box. If layer constraints should be observed, EdgeAndLayerConstraintEdgeReverser and LayerConstraintProcessor should be used.

Precondition:
none
Postcondition:
the graph has no cycles, but possibly new nodes and edges

See Also:
EdgeAndLayerConstraintEdgeReverser, LayerConstraintProcessor
Rating red

Constructor Summary
GreedyCycleBreaker()
           
 
Method Summary
 IntermediateProcessingStrategy getIntermediateProcessingStrategy(LayeredGraph graph)
          Returns the intermediate layout processors this phase depends on.
 void process(LayeredGraph layeredGraph)
          Performs the phase's work on the given graph.
 
Methods inherited from class de.cau.cs.kieler.core.alg.AbstractAlgorithm
getMonitor, reset, reset, setProgressMonitor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.cau.cs.kieler.core.alg.IAlgorithm
reset, reset, setProgressMonitor
 

Constructor Detail

GreedyCycleBreaker

public GreedyCycleBreaker()
Method Detail

getIntermediateProcessingStrategy

public IntermediateProcessingStrategy getIntermediateProcessingStrategy(LayeredGraph graph)
Returns the intermediate layout processors this phase depends on.

Specified by:
getIntermediateProcessingStrategy in interface ILayoutPhase
Parameters:
graph - the layered graph to be processed. The strategy may vary depending on certain properties of the graph.
Returns:
intermediate processing strategy. May be null.

process

public void process(LayeredGraph layeredGraph)
Performs the phase's work on the given graph.

Specified by:
process in interface ILayoutProcessor
Parameters:
layeredGraph - a layered graph