de.cau.cs.kieler.klay.layered.intermediate
Class LongEdgeSplitter

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

public class LongEdgeSplitter
extends AbstractAlgorithm
implements ILayoutProcessor

Splits the long edges of the layered graph to obtain a proper layering. For each edge that connects two nodes that are more than one layer apart from each other, create a dummy node to split the edge. The resulting layering is proper, i.e. all edges connect only nodes from subsequent layers.

The dummy nodes retain a reference to the ports the original long edge's source and target ports.

Precondition:
a layered graph.
Postcondition:
the graph is properly layered.
Slots:
Before phase 3.
Same-slot dependencies:
LayerConstraintProcessor

Rating red

Constructor Summary
LongEdgeSplitter()
           
 
Method Summary
 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

LongEdgeSplitter

public LongEdgeSplitter()
Method Detail

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