- Type Parameters:
V
- the type of dynamic attribute values.
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:
- A reference to a dynamic attribute type which defines the base Java type and domain of valid values.
- One or more values at given times, which may be singletons ([0 … 1] multiplicity) or multi-valued ([0 … ∞] multiplicity).
- One or more values at no particular time (optional),
inherited from the parent
Attribute
interface. - Optional characteristics about the attribute.
Temporal
positions, 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:
-
Method Summary
Modifier and TypeMethodDescriptiongetType()
Returns information about the dynamic attribute (base Java class, domain of values, etc.).Returns the attribute value at the given time, ornull
if none.Returns all attribute values at the given time, or an empty collection if none.
-
Method Details
-
getType
-
valueAt
Returns the attribute value at the given time, ornull
if none. This convenience method can be invoked in the common case where the maximum number of dynamic attribute values is restricted to 1 or 0.- Parameters:
time
- the date, Julian day or other means to represent a position in time.- Returns:
- the attribute value at the given time, or
null
if none. - Throws:
IllegalArgumentException
- if the given time is not a type supported by this implementation.OutOfTemporalDomainException
- if the given time is outside the period of validity.MultiValuedPropertyException
- if this attribute contains more than one value at the given time.
-
valuesAt
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.Note for implementers
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).
- Parameters:
time
- the date, Julian day or other means to represent a position in time.- Returns:
- the attribute values.
- Throws:
IllegalArgumentException
- if the given time is not a type supported by this implementation.OutOfTemporalDomainException
- if the given time is outside the period of validity.
-