de.cau.cs.kieler.klay.layered.intermediate
Class HierarchicalPortConstraintProcessor
java.lang.Object
de.cau.cs.kieler.core.alg.AbstractAlgorithm
de.cau.cs.kieler.klay.layered.intermediate.HierarchicalPortConstraintProcessor
- All Implemented Interfaces:
- IAlgorithm, ILayoutProcessor
public class HierarchicalPortConstraintProcessor
- extends AbstractAlgorithm
- implements ILayoutProcessor
Processes constraints imposed on hierarchical node dummies.
Eastern and western ports cannot be ordered arbitrarily by the crossing minimizer if
the port order is fixed. Thus, this processor inserts appropriate in-layer successor
constraints to restrict the node ordering.
Northern and southern external ports can sadly not be processed in the usual way with
port constraints at least at FIXED_ORDER
. Instead, we need to replace them by new
external port dummies. For each node connected to a northern or southern hierarchical port
dummy, we need to place a new dummy in the next layer, rerouting the edges appropriately.
The original dummies are removed, to be reinserted later by
HierarchicalPortOrthogonalEdgeRouter
. For simplification, this is also done in all
other port constraint cases. This saves us the trouble of having to differentiate between
the different port constraints later on.
- Precondition:
- A layered graph; long edge dummies have not yet been inserted;
layer constraints have not yet been applied.
- Postcondition:
- Hierarchical port dummies for northern and southern ports are
replaced by multiple dummies if the port constraints are at least
FIXED_ORDER
.
- Slots:
- Before phase 3.
- Same-slot dependencies:
LayerConstraintProcessor
- See Also:
HierarchicalPortDummySizeProcessor
,
HierarchicalPortOrthogonalEdgeRouter
,
HierarchicalPortPositionProcessor
- Rating

Method Summary |
void |
process(LayeredGraph layeredGraph)
Performs the phase's work on the given graph. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
HierarchicalPortConstraintProcessor
public HierarchicalPortConstraintProcessor()
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