Class TLcdAIXM51AbstractAIXMFeature

All Implemented Interfaces:
ILcdDataObject, ILcdBounded, ILcdShape, ILcdShapeList, ILcdCache, ILcdCloneable, ILcdDeepCloneable, ILcdInvalidateable, Serializable, Cloneable
Direct Known Subclasses:
TLcdAIXM51Feature

public class TLcdAIXM51AbstractAIXMFeature extends TLcdAIXM51AbstractAIXMFeatureBase implements ILcdShapeList, ILcdCache
A general representation of an AIXM 5.1 feature. A feature is the representation of a real-world aeronautical object, like an airport, navaid, airspace, etc.

A feature consists of a set of timeslices, that each represent the state of the feature during a certain time extent. The timeslices can be retrieved through the method getTimeSlices().

A feature can either be stand-alone, or contained inside a message, represented by the class TLcdAIXM51AbstractAIXMMessage.

A feature implements ILcdShapeList and can contain a set of shapes, depending on the type of feature (e.g., some features do not have a geographical position). To determine the geometry of a feature, the method collectShapes() is invoked by the AIXM 5.1 Message that contains this feature.

Each timeslice in this feature is an ILcdShapeList, which can potentially be added to the list of shapes in this feature. The method collectShapes() runs by default over all timeslices and adds them to the list of shapes in this feature, if they are accepted by the geometry filter (see getGeometryFilter()) or if no filter is set.

Since:
10.0
See Also:
  • Field Details

    • FEATURE_METADATA_PROPERTY

      public static final TLcdDataProperty FEATURE_METADATA_PROPERTY
      Data property that maps to the featureMetadata element. The possible values for this property are instances of TLcdAIXM51FeatureMetadataProperty.
    • BOUNDED_BY_PROPERTY

      public static final TLcdDataProperty BOUNDED_BY_PROPERTY
      Data property that maps to the boundedBy element. The possible values for this property are instances of TLcdGML32BoundingShape.
    • LOCATION_PROPERTY

      public static final TLcdDataProperty LOCATION_PROPERTY
      Data property that maps to the location element. The possible values for this property are instances of TLcdGML32LocationProperty.
  • Constructor Details

    • TLcdAIXM51AbstractAIXMFeature

      public TLcdAIXM51AbstractAIXMFeature(TLcdDataType aType)
      Constructs a new TLcdAIXM51AbstractAIXMFeature for the given type. This type must be a subtype of AbstractAIXMFeatureType.
      Parameters:
      aType - the feature type for which to create a new instance
  • Method Details

    • getGeometryFilter

      public ILcdFilter getGeometryFilter()
      Returns the filter that is used to determine the timeslices for which the geometry has to be taken into account.

      By default, an ILcdFilter is set that only takes the geometry of BASELINE and SNAPSHOT timeslices into account.

      Returns:
      the filter that is used to determine the timeslices for which the geometry has to be taken into account.
      See Also:
    • setGeometryFilter

      public void setGeometryFilter(ILcdFilter aGeometryFilter)
      Sets the filter that is used to determine the timeslices for which the geometry has to be taken into account.
      Parameters:
      aGeometryFilter - the filter that is used to determine the timeslices for which the geometry has to be taken into account.
      See Also:
    • getTimeSlices

      public List<TLcdAIXM51AbstractAIXMTimeSlice> getTimeSlices()
      Returns a list of objects corresponding to AIXM 5.1 types with base type AbstractAIXMTimeSliceType. This list can be used to add and remove timeslices from this feature. It will also create the necessary timeslice properties when timeslices are added to this feature, to ensure a valid XML mapping.
      Returns:
      A list of timeslices. Unless the default mapping is changed, the objects in the List should be of type TLcdAIXM51AbstractAIXMTimeSlice.
    • getBounds

      public ILcdBounds getBounds()
      Returns the bounds of this feature.

      If this feature contains actual shapes, the bounding box of these shapes is returned. If no geometry is found, the boundedBy element is used as bounds if available; otherwise, the result of TLcdGML32AbstractFeature.getBounds() is returned.

      Specified by:
      getBounds in interface ILcdBounded
      Overrides:
      getBounds in class TLcdGML32AbstractFeature
      Returns:
      the bounds of this feature.
    • getFocusPoint

      public ILcdPoint getFocusPoint()
      Description copied from interface: ILcdShape
      Returns the focus point of this ILcdShape.
      Specified by:
      getFocusPoint in interface ILcdShape
      Overrides:
      getFocusPoint in class TLcdGML32AbstractFeature
      Returns:
      the focus point of this ILcdShape.
    • shapesChanged

      public void shapesChanged()
      Description copied from class: TLcdGML32AbstractFeature
      Notifies this ILcdShapeList that some (possibly all) of its shapes have changed.

      This method should be called whenever a shape in this GML feature has been changed, or when a shape is inserted in or removed in one the properties of this GML feature.

      This method is the same as TLcdGML32AbstractFeature.invalidateObject().

      Overrides:
      shapesChanged in class TLcdGML32AbstractFeature
    • clone

      public TLcdDataObject clone(Map aObjectDictionary)
      Description copied from class: TLcdDataObject
      Returns a deep clone of this object. If the clone is not already present in the dictionary, a new instance if created as follows:
      • First, a new instance is created using Java's clone() mechanism.
      • Then, all properties of this object are cloned and set on the newly created instance. A property is cloned as follows:
        • If the property value is an ILcdDataObject, the value is cloned by first creating a new instance via the value.getDataType().newInstance() method, and then cloning its properties one by one.
        • If the value implements ILcdDeepCloneable or ILcdCloneable then this interface is used to clone the value.
        • Otherwise, the property value is copied by reference.
      Specified by:
      clone in interface ILcdDeepCloneable
      Overrides:
      clone in class TLcdGML32AbstractFeature
      Parameters:
      aObjectDictionary - the Object dictionary that keeps track of the objects for which a clone has already been made, and their corresponding clone Object.
      Returns:
      a deep clone of this object
    • collectShapes

      protected List<ILcdShape> collectShapes()
      Description copied from class: TLcdGML32AbstractFeature
      Override this method to collect all shapes that needs to be included in the ILcdShapeList implementation of this feature. The default implementation recursively searches through all features of this ILcdDataObject for all features implementing ILcdShape.
      Overrides:
      collectShapes in class TLcdGML32AbstractFeature
      Returns:
      the list of shapes contained in this object.
    • insertIntoCache

      public void insertIntoCache(Object aKey, Object aValue)
      Description copied from interface: ILcdCache
      Inserts a cache Object corresponding to the given key Object.
      Specified by:
      insertIntoCache in interface ILcdCache
      Parameters:
      aKey - the key Object that will be used to identify the Object. The key must therefore be a unique identifier, typically the caller itself: insertIntoCache(this, ...).
      aValue - the Object to be cached.
    • removeCachedObject

      public Object removeCachedObject(Object aKey)
      Description copied from interface: ILcdCache
      Looks up and removes the cached Object corresponding to the given key.
      Specified by:
      removeCachedObject in interface ILcdCache
      Parameters:
      aKey - the key Object that was used for storing the cache Object.
      Returns:
      the cached Object, or null if there was no Object corresponding to the given key.
    • clearCache

      public void clearCache()
      Description copied from interface: ILcdCache
      Clears the cache.
      Specified by:
      clearCache in interface ILcdCache
    • getCachedObject

      public Object getCachedObject(Object aKey)
      Description copied from interface: ILcdCache
      Looks up and returns the cached Object corresponding to the given key.
      Specified by:
      getCachedObject in interface ILcdCache
      Parameters:
      aKey - the key Object that was used for storing the cache Object.
      Returns:
      the cached Object, or null if there is no Object corresponding to the given key.
    • getFeatureMetadata

      public TLcdAIXM51FeatureMetadataProperty getFeatureMetadata()
      Returns the value of the property that maps to the featureMetadata element.
      Returns:
      the value of the FEATURE_METADATA_PROPERTY property.
    • setFeatureMetadata

      public void setFeatureMetadata(TLcdAIXM51FeatureMetadataProperty aValue)
      Sets the value of the property that maps to the featureMetadata element.
      Parameters:
      aValue - the value to set for the FEATURE_METADATA_PROPERTY property.
    • getBoundedBy

      public TLcdGML32BoundingShape getBoundedBy()
      Returns the value of the property that maps to the boundedBy element.

      This property describes the minimum bounding box or rectangle that encloses the entire feature.

      Returns:
      the value of the BOUNDED_BY_PROPERTY property.
    • setBoundedBy

      public void setBoundedBy(TLcdGML32BoundingShape aValue)
      Sets the value of the property that maps to the boundedBy element.

      This property describes the minimum bounding box or rectangle that encloses the entire feature.

      Parameters:
      aValue - the value to set for the BOUNDED_BY_PROPERTY property.
    • getLocation

      public Object getLocation()
      Returns the value of the property that maps to the location element.
      Returns:
      the value of the LOCATION_PROPERTY property.
      See Also:
    • setLocation

      public void setLocation(Object aValue)
      Sets the value of the property that maps to the location element.
      Parameters:
      aValue - the value to set for the LOCATION_PROPERTY property.