Package suvi.api.alg.attr

Layout attribute interfaces.


Interface Summary
EdgeGapAttr Global edge gap attribute.
EdgeLabelAttr Edge label attributes.
EdgeLabelConstants Edge label constants.
EdgeMinLengthAttr Edge minimum length attributes.
EdgeTypeAttr Edge type attributes.
EdgeTypeConstants Edge type constants.
EdgeWeightAttr Edge weight attributes.
FlowTrendAttr Global flow trend attribute.
FlowTrendConstants Flow trend constants.
GraphLayoutAttr Tagging interface for layout attributes.
GraphLayoutAttrBuilder Builder for graph layout attributes.
GraphLayoutAttrBuilderFactory A factory for creating new GraphLayoutAttrBuilders as needed.
GraphLayoutAttrClassesConstants Contains an array of all attribute classes in this package.
GraphLayoutAttrConsumer A graph layout attribute consumer can tell which attributes it wants and at the same time provide more or less reasonable defaults for those attributes.
GraphLayoutAttrMapBuilder A Builder [Gamma1995] for GraphLayoutAttrMap.
NodeExtentAttr Node extent attributes.
NodeGapAttr Global node gap attribute.
NodeGroupingAttr Node grouping attributes.
NodeOrderingAttr Node ordering attributes.
NodeRankingAttr Node ranking attributes.

Class Summary
AbstractGraphLayoutAttrBuilder Abstract base for GraphLayoutAttrBuilders.
GraphLayoutAttrMap Map from an attribute class to the attribute object.
GraphLayoutAttrs Static utility methods for dealing with graph layout attributes.
GraphLayoutAttrsTest A [JUnit] test for GraphLayoutAttrs.
GraphLayoutAttrTransformer Canonicalization transformation function for graph layout attributes.

Package suvi.api.alg.attr Description

Layout attribute interfaces.

Design rationale

The intention behind the design of the attribute system is to centralize the logic needed to support a particular attribute interface to the interface itself, so that other components need not be modified when new attribute interfaces are added. In particular, the GraphLayoutAlgChassis, the existing policies (suvi.alg.policies) and the GraphParser are mostly invariant in respect to addition of new attributes. This is the essence of the Open-Closed Principle [Martin2002].