Interface DynamicAttribute<V>

  • Type Parameters:
    V - the type of dynamic attribute values.
    All Superinterfaces:
    Attribute<V>, Property

    @UML(identifier="AttributeType",
         specification=OGC_14083)
    public interface DynamicAttribute<V>
    extends Attribute<V>
    An instance of a DynamicAttributeType containing time-dependent values of an attribute. A dynamic attribute represents the result of ascertaining the value of an attribute of a moving feature that changes over time and/or location. Dynamic attributes contain non-spatial values; time-varying geometric values should be represented by trajectories instead. DynamicAttribute holds four main information: Values are evaluated at given TemporalPositions, which may be calendar dates or Julian days for instances. Even though the value of dynamic attribute depends on the spatiotemporal location, this interface only considers the temporal dependencies of their changes of value. Evaluating at the given temporal position may require interpolation. Interpolation algorithm, if any, is implementation-dependent.

    DynamicAttribute can be instantiated by calls to DynamicAttributeType.newInstance().

    Since:
    3.1
    See Also:
    DynamicAttributeType, Attribute
    • Method Detail

      • getType

        DynamicAttributeType<V> getType()
        Returns information about the dynamic attribute (base Java class, domain of values, etc.).
        Specified by:
        getType in interface Attribute<V>
        Returns:
        information about the dynamic attribute.
      • valuesAt

        @UML(identifier="valueAt",
             specification=OGC_14083)
        Collection<V> valuesAt​(TemporalPosition time)
                        throws OutOfTemporalDomainException
        Returns all attribute values at the given time, or an empty collection if none. Evaluating at the given temporal position may require interpolation. Interpolation algorithm, if any, is implementation-dependent.
        Implementation note
        there is different approaches in the way that collection elements are related to those property values:
        • The collection may be a snapshot of property values at the method invocation time.
        • The collection may be an unmodifiable view of properties values.
        • The collection may be live (changes in the collection are reflected in this attribute, and vis-versa).
        This method does not mandate a particular approach. However implementations should document which policy they choose.
        Parameters:
        time - the date, Julian day or other means to represent a position in time.
        Returns:
        the attribute values.
        Throws:
        OutOfTemporalDomainException - if the given temporal time is outside the period of validity.