Package org.graffiti.attributes

Contains interfaces and classes to create an attribute hierarchy.


Interface Summary
Attributable Interfaces an object that contains a hierarchy of attributes.
Attribute Interfaces an object, which contains an id and a value.
AttributeConsumer Interfaces an object, which depends on the presence of a set of attributes.
CollectionAttribute Contains a Collection of Attributes.
SortedCollectionAttribute Empty interface.

Class Summary
AbstractAttributable Provides common functionality for Attributable classes.
AbstractAttribute Provides common functionality for classes implementing the Attribute interface.
AbstractCollectionAttribute Provides common functionality for CollectionAttribute instances.
AttributeTypesManager Provides a type manager for attributes.
BooleanAttribute Contains a boolean value.
ByteAttribute Contains a byte
CompositeAttribute Interfaces a composite attribute.
DoubleAttribute Contains a double
EdgeShapeAttribute "Tagging" class only.
FloatAttribute Contains a float
HashMapAttribute Maps a given id to an attribute.
IntegerAttribute Contains an integer.
LinkedHashMapAttribute DOCUMENT ME!
LongAttribute Contains a long
NodeShapeAttribute "Tagging" class only.
ObjectAttribute Contains an object.
ShortAttribute Contains a short
StringAttribute Contains a String.

Exception Summary
AttributeExistsException The AttributeExistsException will be thrown if a method tries to add an attribute at a location where another attribute already exists.
AttributeNotFoundException The AttributeNotFoundException will be thrown if a method tries to access a nonexistent attribute.
FieldAlreadySetException The FieldAlreadySetException will be thrown if setAttributable() of setParent() is invoked on an attribute where theses fields are not null anymore.
IllegalIdException The IllegalIdException will be thrown if a method tries to add an attribute at a location where another attribute already exists.
NoCollectionAttributeException The NoCollectionAttributeException will be thrown if a method tries to add an attribute to an attribute which is no CollectionAttribute.
UnificationException Thrown in the context of unification failures (e.g.: during the merge of two collection attributes in an addAttributeConsumer call).

Package org.graffiti.attributes Description

Contains interfaces and classes to create an attribute hierarchy.

An attribute hierarchy is composed of base attributes (all data types present in programming languages) and user defined composite attributes (which have to be mapped to attribute hierarchies composed of base attributes).

Each attribute is a parameterized data type (pascal like notation):

type Attribute(Type) = record
    key: java.lang.String;
    value: Type;
In the following, we will use the types Attribute(IntegerAttribute), Attribute(DoubleAttribute), Attribute(StringAttribute) and Attribute(CompositeAttribibute). We will also assume, that the type of an Attribute is available at runtime, as in the following example:
case type(a) of
  Attribute(IntegerAttribute):              Action for type Integer;
  Attribute(DoubleAttribute):               Action for type Double;
  Attribute(StringAttribute):               Action for type String;
  Attribute(CompositeAttribute(Attribute)): Action for type CompositeAttribute(Attribute);

A path "" denotes all sequences of attributes a1,a2,...,an where

Examples of paths are ".id", ".graph.label", ".node.label" and "". A path describes a class of sequences of attributes which can start anywhere in the attribute hierarchy. We can also define paths that start at a specific attribute:

Let "", n >= 1 be a path and a be an attribute. Then "" denotes the path starting at a, that is all sequences of attributes a1,a2,...,an where

Finally, we omit the leading point on a path iff it starts at the root attribute.

A path starting at the root is defined as follows: Let k1,k2,...,kn, n >= 1 be keys. "" denotes the path "" where R is the root object of the attribute hierarchy.

Note: these notations are similar to the one found in the graphlet handbook.

Generated at 2012-05-30 11:00:14 PM CEST