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

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

public class HyperedgeDummyMerger
extends AbstractAlgorithm
implements ILayoutProcessor

Looks for long edge dummy nodes that can be joined together. The aim is to reduce the amount of edges by having edges originating from the same port or going into the same port joined. This should be done after crossing minimization. Only those dummy nodes are joined that the crossing minimizer placed right next to each other.

Precondition:
a layered graph; node orders are fixed; for long edge dummies to be joined, their Properties.LONG_EDGE_SOURCE and Properties.LONG_EDGE_TARGET properties must be set.
Postcondition:
long edge dummy nodes belonging to the same hyperedge and being directly next to each other are merged.
Slots:
Before phase 4.
Same-slot dependencies:
InLayerConstraintProcessor

Rating red

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

HyperedgeDummyMerger

public HyperedgeDummyMerger()
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