Class TLcdFeaturedShapeList

All Implemented Interfaces:
ILcdDataObject, ILcdBounded, ILcdEditableShapeList, ILcdShape, ILcdShapeList, ILcdCache, ILcdCloneable, ILcdFeatured, ILcdInvalidateable, Serializable, Cloneable
Direct Known Subclasses:
TLcdMIFCollection, TLcdMIFMultipoint, TLcdMIFPLine, TLcdMIFRegion, TLcdMIFText

public class TLcdFeaturedShapeList extends TLcdShapeList implements ILcdFeatured, ILcdDataObject
This class provides an implementation of ILcdShapeList that is also ILcdDataObject and ILcdFeatured.

This class is typically used in situations that require both ILcdDataObject and ILcdFeatured. In case only ILcdDataObject is required, TLcdDataObjectShapeList should be used.

A TLcdFeaturedShapeList has a display name, which can be set freely. If the display name has not been set explicitly, it is retrieved from the list of features through a default display name index. The value of this index can be set; its default value is 0.

This class is thread-safe for concurrent read-only access of its contents. For read-write access, external locking must be used. Such locking is typically done at the model level.

See Also:
  • Constructor Details

    • TLcdFeaturedShapeList

      public TLcdFeaturedShapeList()
      Constructs a TLcdFeaturedShapeList that doesn't have any ILcdShape objects, features, or display name.
    • TLcdFeaturedShapeList

      public TLcdFeaturedShapeList(String aDisplayName)
      Constructs a TLcdFeaturedShapeList that doesn't have any ILcdShape objects or features, with the given display name.
      Parameters:
      aDisplayName - a display name.
    • TLcdFeaturedShapeList

      public TLcdFeaturedShapeList(String aDisplayName, ILcdFeatured aFeaturesObject)
      Constructs a TLcdFeaturedShapeList that doesn't have any ILcdShape objects, with the given features and display name.
      Parameters:
      aDisplayName - a display name.
      aFeaturesObject - a set of features
    • TLcdFeaturedShapeList

      public TLcdFeaturedShapeList(ILcdShape[] aShapeArray, ILcdBounds aBounds)
      Constructs a TLcdFeaturedShapeList with the given array of shapes.
      Parameters:
      aShapeArray - the shape array for this shape list.
      aBounds - the total bounds of this shape list, if known at construction time, or null if unknown.
    • TLcdFeaturedShapeList

      public TLcdFeaturedShapeList(TLcdFeaturedShapeList aFeaturedShapeList)
      Constructs a TLcdFeaturedShapeList that is a clone of the given TLcdFeaturedShapeList.
      Parameters:
      aFeaturedShapeList - the TLcdFeaturedShapeList to clone.
  • Method Details

    • getFeatureCount

      public final int getFeatureCount()
      Description copied from interface: ILcdFeatured
      Returns the number of features.
      Specified by:
      getFeatureCount in interface ILcdFeatured
      Returns:
      the number of features.
    • getFeature

      public final Object getFeature(int aIndex) throws IndexOutOfBoundsException
      Description copied from interface: ILcdFeatured
      Returns the feature Object at the given index.
      Specified by:
      getFeature in interface ILcdFeatured
      Parameters:
      aIndex - a valid feature index.
      Returns:
      the feature Object at the given index.
      Throws:
      IndexOutOfBoundsException - when an index is chosen greater than the result of getFeatureCount.
      See Also:
    • setFeature

      public void setFeature(int aIndex, Object aFeature)
      Description copied from interface: ILcdFeatured
      Sets the feature Object at the given index.
      Specified by:
      setFeature in interface ILcdFeatured
      Parameters:
      aIndex - a valid feature index.
      aFeature - the new feature Object.
      See Also:
    • canSetFeature

      public boolean canSetFeature(int aIndex)
      Description copied from interface: ILcdFeatured
      Checks whether the specified feature is editable.
      Specified by:
      canSetFeature in interface ILcdFeatured
      Parameters:
      aIndex - a valid feature index.
      Returns:
      true if the feature can be set, false otherwise.
    • setFeatures

      public void setFeatures(ILcdFeatured aFeatured)
      Sets the features to this object.
      Parameters:
      aFeatured - the features to set to this object.
      See Also:
    • getFeatures

      public ILcdFeatured getFeatures()
      Returns the features of this object.
      Returns:
      the features of this object.
      See Also:
    • getDisplayName

      public String getDisplayName()
      Returns the name for this object to be used for display.
      Returns:
      the display name when set, the feature with the default display name index otherwise.
      See Also:
    • setDefaultDisplayNameIndex

      public void setDefaultDisplayNameIndex(int aDefaultDisplayNameIndex)
      Sets the index of the feature to use as display name, if the display name has not been specified explicitly. The default value is 0.
      Parameters:
      aDefaultDisplayNameIndex - a valid index in the list of features.
      See Also:
    • getDefaultDisplayNameIndex

      public int getDefaultDisplayNameIndex()
      Returns the current index of the feature to use as display name, if the display name has not been specified explicitly.
      Returns:
      the current index of the feature to use as display name, if the display name has not been specified explicitly.
      See Also:
    • clone

      public Object clone()
      Creates and returns a copy of this object.

      The shape array and the contained feature list are copied without being cloned.

      Specified by:
      clone in interface ILcdCloneable
      Overrides:
      clone in class TLcdShapeList
      See Also:
    • equals

      public boolean equals(Object aObject)
      Returns whether the given object has the same class, the same coordinates, the same features, and the same display name.
      Overrides:
      equals in class ALcdShapeList
    • hashCode

      public int hashCode()
      Description copied from class: ALcdShape
      The hash code of this shape is the hash code of its class, in order to be consistent with the ALcdShape.equals(Object) method. Extensions should refine this implementation, based on their properties.
      Overrides:
      hashCode in class ALcdShapeList
    • toString

      public String toString()
      Returns the display name.
      Overrides:
      toString in class ALcdShapeList
      Returns:
      the display name.
    • getValue

      public Object getValue(TLcdDataProperty aProperty)
      Description copied from interface: ILcdDataObject

      Returns the value of the given property.

      If the property is a collection, the returned value will never be null. If the property has not been set, an empty collection of the appropriate type will be returned (Set, List or Map).

      The property must not be null, and must be declared in the data object's type or in one of its super types. Otherwise an IllegalArgumentException is thrown.

      Specified by:
      getValue in interface ILcdDataObject
      Parameters:
      aProperty - the property for which the value is to be returned
      Returns:
      the value of the given property for this data object
    • getDataType

      public TLcdDataType getDataType()
      Description copied from interface: ILcdDataObject
      Returns the type of this data object. This can never be null.
      Specified by:
      getDataType in interface ILcdDataObject
      Returns:
      the type of this data object
    • setValue

      public void setValue(TLcdDataProperty aProperty, Object aValue)
      Description copied from interface: ILcdDataObject

      Sets the value of the given property for this data object. The implementation is allowed to throw an exception if the given value can't be set.

      The given property must be declared in the data object's type or in one of its super types. In other words, getDataType().getProperties().contains( aProperty ) should always be true. Otherwise, the implementation should throw an IllegalArgumentException.

      Specified by:
      setValue in interface ILcdDataObject
      Parameters:
      aProperty - the property for which the value is to be set
      aValue - the value to set
      See Also:
    • getValue

      public Object getValue(String aPropertyName)
      Description copied from interface: ILcdDataObject

      Convenience method that returns the value of the property with the given name.

      If more than one property exists with the given name, the most specific property should be used (this is the property defined by the most specialized type in this object's data type hierarchy).

      See ILcdDataObject.getValue(TLcdDataProperty) for more information.

      Specified by:
      getValue in interface ILcdDataObject
      Parameters:
      aPropertyName - the name of the property of which the value is to be returned
      Returns:
      the value of the property with the given name
      See Also:
    • setValue

      public void setValue(String aPropertyName, Object aValue)
      Description copied from interface: ILcdDataObject

      Convenience method that sets the value of the property with the given name.

      If more than one property exists with the given name, the most specific property should be used (this is the property defined by the most specialized type in this object's data type hierarchy).

      See ILcdDataObject.setValue(TLcdDataProperty, Object) for more information.

      Specified by:
      setValue in interface ILcdDataObject
      Parameters:
      aPropertyName - the name of the property of which the value is to be set
      aValue - the value to set
    • hasValue

      public boolean hasValue(TLcdDataProperty aProperty)
      Description copied from interface: ILcdDataObject
      Indicates whether this data object has a value for the given property.

      • aProperty is from the right data type, and this instance has a value for it: returns true
      • aProperty is from the right data type, and this instance has no value for it: returns false
      • aProperty is not from the right data type: not allowed, you will get IllegalArgumentException
      • aProperty is null: not allowed, you will get NullPointerException

      A multivalued property is considered to have a value if it has at least one value.

      Specified by:
      hasValue in interface ILcdDataObject
      Parameters:
      aProperty - the property for which to return whether a value is present or not.
      Returns:
      true if this data object has a value for the given property, false otherwise.
    • hasValue

      public boolean hasValue(String aPropertyName)
      Description copied from interface: ILcdDataObject
      Indicates whether this data object has a value for the given property.
      See ILcdDataObject.hasValue(TLcdDataProperty) for more information.
      Specified by:
      hasValue in interface ILcdDataObject
      Parameters:
      aPropertyName - the name of the property for which to return whether a value is present or not.
      Returns:
      true if this data object has a value for the property with the given name, false otherwise.