Interface Association

  • All Superinterfaces:
    Property
    All Known Implementing Classes:
    AssociationImpl

    public interface Association
    extends Property
    Extension of Property to represent an Association, or relationship, between two attributes.

    The notion of an "association" is similar to that of an association in UML and is used to model a relationship between entities. Examples of such a relationship could be:

    • aggregation: An attribute may contain another attribute
    • spatial: A feature is spatial related to another (touches, intersects, etc..)
    • temporal: An is a previous version of another attribute in a versioning system

    Example

    The value of an association is an Attribute. As an example consider the following xml complex type definitions:

       <complexType name="fooType">
         ...
       </complexType>
       <element name="foo" type="fooType"/>
    
       <complexType name="barType">
         <sequence>
           <element name="intAttribute" type="xs:int"/>
           <element name="stringAttribute" type="xs:string"/>
           <element name="fooAssociation" type="xlink:href"/>
         </sequence>
       </complexType>
       <element name="bar" type="barType"/>
     
    In the above, "fooType" is an identifiable type. Now consider the following section of an xml instance document:
       <foo id="someId">
         ...
       </foo>
       ...
       <bar>
         <intAttribute>1</intAttribute>
         <stringAttribute>one</stringAttribute>
         <fooAssociation>someId</fooAssociation>
       </bar>
     
    Realizing this as objects with attributes and associations we get:
       ComplexAttribute bar = ...;
    
       //intAttribute
       Attribute intAttribute = (Attribute) bar.getProperty( "intAttribute" );
       intAttribute.getValue() == 1
    
       //stringAttribute
       Attribute stringAttribute = (Attribute) bar.getProperty( "stringAttribute" );
       stringAttribute.getValue() == "one"
    
       //fooAssociation
       Association fooAssociation = (Association) bar.getProperty( "fooAssociation" );
       Attribute foo =  fooAssociation.getValue();
     
    Author:
    Jody Garnett, Refractions Research, Justin Deoliveira, The Open Planning Project