de.cau.cs.kieler.kiml.grana.analyses
Class HyperedgeCrossingsAnalysis

java.lang.Object
  extended by de.cau.cs.kieler.kiml.grana.analyses.HyperedgeCrossingsAnalysis
All Implemented Interfaces:
IAnalysis

public class HyperedgeCrossingsAnalysis
extends Object
implements IAnalysis

A special edge crossings analysis for hyperedges. Works best with data flow diagrams.

There is one case of crossings which the algorithm fails to count. When an edge intersects another edge without joining it, but with the intersection point being a bend point, the crossing isn't counted. This is usually not a problem for orthogonally routed diagrams, but may be one for others. I haven't fixed that yet because there's no easy obvious way to do so, and the case is sufficiently rare.

Rating red

Constructor Summary
HyperedgeCrossingsAnalysis()
           
 
Method Summary
 Object doAnalysis(KNode parentNode, Map<String,Object> results, IKielerProgressMonitor progressMonitor)
          Performs the actual analysis process and returns the results.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HyperedgeCrossingsAnalysis

public HyperedgeCrossingsAnalysis()
Method Detail

doAnalysis

public Object doAnalysis(KNode parentNode,
                         Map<String,Object> results,
                         IKielerProgressMonitor progressMonitor)
Performs the actual analysis process and returns the results. If more than one component have been specified for the analysis in the extension the method is expected to return an array.

Specified by:
doAnalysis in interface IAnalysis
Parameters:
parentNode - the parent node which the analysis is performed on
results - the result of analyses that were performed before this one (it should include the results of all dependency analyses)
progressMonitor - progress monitor used to keep track of progress
Returns:
the analysis results