Class DefaultAssociationRole

  • All Implemented Interfaces:
    Serializable, Deprecable

    public class DefaultAssociationRole
    extends AbstractIdentifiedType
    Indicates the role played by the association between two features. In the area of geographic information, there exist multiple kinds of associations:
    • Aggregation represents associations between features which can exist even if the aggregate is destroyed.
    • Composition represents relationships where the owned features are destroyed together with the composite.
    • Spatial association represents spatial or topological relationships that may exist between features (e.g. “east of”).
    • Temporal association may represent for example a sequence of changes over time involving the replacement of some feature instances by other feature instances.
    Immutability and thread safety
    Instances of this class are immutable if all properties (Generic­Name and International­String instances) and all arguments (e.g. value­Type) given to the constructor are also immutable. Such immutable instances can be shared by many objects and passed between threads without synchronization.
    Since:
    0.5
    See Also:
    Default­Feature­Type, Abstract­Association, Serialized Form

    Defined in the sis-feature module

    • Constructor Detail

      • DefaultAssociationRole

        public DefaultAssociationRole​(Map<String,​?> identification,
                                      GenericName valueType,
                                      int minimumOccurs,
                                      int maximumOccurs)
        Constructs an association to a feature type of the given name. This constructor can be used when creating a cyclic graph of Default­Feature­Type instances. In such cases, at least one association needs to be created while its Feature­Type is not yet available.
        Example: The following establishes a bidirectional association between feature types A and B:
        String    namespace = "My model";
        GenericName nameOfA = Names.createTypeName(namespace, ":", "Feature type A");
        GenericName nameOfB = Names.createTypeName(namespace, ":", "Feature type B");
        FeatureType typeA = new DefaultFeatureType(nameOfA, false, null,
            new DefaultAssociationRole(Names.createLocalName("Association to B"), nameOfB),
            // More properties if desired.
        );
        FeatureType typeB = new DefaultFeatureType(nameOfB, false, null,
            new DefaultAssociationRole(Names.createLocalName("Association to A"), featureA),
            // More properties if desired.
        );
        After the above code completed, the value type of "association to B" has been automatically set to the type­B instance.
        Callers shall make sure that the feature types graph will not contain more than one feature of the given name. If more than one Feature­Type instance of the given name is found at resolution time, the selected one is undetermined.
        Parameters:
        identification - the name and other information to be given to this association role.
        value­Type - the name of the type of feature values.
        minimum­Occurs - the minimum number of occurrences of the association within its containing entity.
        maximum­Occurs - the maximum number of occurrences of the association within its containing entity, or Integer​.MAX_VALUE if there is no restriction.
    • Method Detail

      • isResolved

        public final boolean isResolved()
        Returns true if the associated Feature­Type is complete (not just a name). This method returns false if this Feature­Association­Role has been constructed with only a feature name and that named feature has not yet been resolved.
        Returns:
        true if the associated feature is complete, or false if only its name is known.
        Since:
        0.8
        See Also:
        get­Value­Type()
      • getMinimumOccurs

        public final int getMinimumOccurs()
        Returns the minimum number of occurrences of the association within its containing entity. The returned value is greater than or equal to zero.
        Returns:
        the minimum number of occurrences of the association within its containing entity.
      • getMaximumOccurs

        public final int getMaximumOccurs()
        Returns the maximum number of occurrences of the association within its containing entity. The returned value is greater than or equal to the get­Minimum­Occurs() value. If there is no maximum, then this method returns Integer​.MAX_VALUE.
        Returns:
        the maximum number of occurrences of the association within its containing entity, or Integer​.MAX_VALUE if none.
      • hashCode

        public int hashCode()
        Returns a hash code value for this association role.
        Returns:
        the hash code for this type.
      • equals

        public boolean equals​(Object obj)
        Compares this association role with the given object for equality.
        Parameters:
        obj - the object to compare with this type.
        Returns:
        true if the given object is equals to this type.
      • toString

        public String toString()
        Returns a string representation of this association role. The returned string is for debugging purpose and may change in any future SIS version.
        Overrides:
        to­String in class Object
        Returns:
        a string representation of this association role for debugging purpose.