public class TLcdASDIFlightPlan extends Object implements ILcdPointList, ILcdBounded,ILcdFeatured, Cloneable, ILcdDataObject, ILcdCache
TLcdASDIFlightPlanHistory
. It represents the
intended route and flight plan features of the TLcdASDIFlightPlanHistory
at a
certain index.
A TLcdASDIFlightPlanHistory
represents the whole history of a
flight plan, including an intended route and additional information (=features) for
every timestamp. This TLcdASDIFlightPlan
however
represents a flight plan of a TLcdASDIFlightPlanHistory
at a certain time,
so it represents a TLcdASDIFlightPlanHistory
at a certain index.
All data made available by a TLcdASDIFlightPlan
is in fact
extracted from the TLcdASDIFlightPlanHistory
on which the
TLcdASDIFlightPlan
is based.
The history can be retrieved using getFlightPlanHistory()
, the index
in the history with getFlightPlanHistoryIndex()
.
The method isActive()
allows to check if a flight plan is active.
A flight plan is considered active when it has a valid history index.
Use setFlightPlanHistoryIndex(int)
to update the state of a flight plan to a given index.
Note that the method TLcdASDIFlightPlanHistory.getIndexForTimeStamp(long)
can
be used to retrieve the index for a given time value.
The properties of a flight plan can be accessed through the ILcdDataObject
interface. The data type of a track will be TLcdASDIFlightPlanDataTypes.FlightPlanType
.
The values of the properties can be retrieved using the
ILcdDataObject.getValue(com.luciad.datamodel.TLcdDataProperty)
method. The property values
of a message can be accessed using the getMessageType(int)
and
getMessageValue(int, com.luciad.datamodel.TLcdDataProperty)
methods. The message type will be one of the data types found in TLcdASDIMessageDataTypes
.
The flight plan properties can also be accessed through the ILcdFeatured
interface. The features of the flight plan messages that make up the flight plan
can be accessed through the methods getMessageCount()
,
getMessageFeatureCount(int)
and getMessageFeature(int, int)
.
An overview of all flight plan features can be found in ILcdASDIFlightPlanFeatures
and of all flight plan message features in ILcdASDIFlightPlanMessageFeatures
. Note that
the ILcdFeatured
interface only exists for backwards compatibility. It is recommended
to use the ILcdDataObject
instead, as described in the previous paragraph.
Models with TLcdASDIFlightPlan
objects have model descriptors that are
TLcdASDIFlightPlanModelDescriptor
. They describe the features
(available through the ILcdFeatured
interface)
of the TLcdASDIFlightPlan
objects. Moreover they have a method
getMessageFeaturedDescriptor(String aMessageType)
that allows to retrieve the ILcdFeaturedDescriptor
for the flight plan message features.
The message type that must be provided as argument can be obtained from
getMessageType(int aMessageIndex)
. Constructor and Description |
---|
TLcdASDIFlightPlan(TLcdASDIFlightPlanHistory aFlightPlanHistory)
Constructs a new
TLcdASDIFlightPlan that has a reference to a
TLcdASDIFlightPlanHistory . |
Modifier and Type | Method and Description |
---|---|
boolean |
canSetFeature(int aFeatureIndex)
Checks whether the flight plan feature with index
aFeatureIndex
of the flight plan at the current flight plan history index is editable. |
void |
clearCache()
Clears the cache.
|
Object |
clone()
Creates a shallow clone of this flightplan.
|
ILcdBounds |
getBounds()
Returns the
ILcdBounds by which the geometry of this ILcdBounded object
is bounded. |
Object |
getCachedObject(Object aKey)
Looks up and returns the cached Object corresponding to the given key.
|
TLcdDataType |
getDataType()
Returns the type of this data object.
|
Object |
getFeature(int aFeatureIndex)
Returns the value of the flight plan feature at index
aFeatureIndex
for the flight plan at the current flight plan history index. |
int |
getFeatureCount()
Returns the number of flight plan features from the associated flight plan history.
|
TLcdASDIFlightPlanHistory |
getFlightPlanHistory()
Returns the
TLcdASDIFlightPlanHistory for which this
TLcdASDIFlightPlan shows a window. |
int |
getFlightPlanHistoryIndex()
Returns the index for which this flight plan represents the flight plan history.
|
int |
getMessageCount()
Returns the number of messages in this flight plan.
|
TLcdDataType |
getMessageDataType(int aMessageIndex)
Returns the
TLcdDataType of the message at the given index. |
Object |
getMessageFeature(int aMessageIndex,
int aFeatureIndex)
Retrieves the message feature indicated by
aFeatureIndex
for the message with index aMessageIndex . |
int |
getMessageFeatureCount(int aMessageIndex)
Returns the number of features in the message with index
aMessageIndex . |
String |
getMessageType(int aMessageIndex)
Returns a
String indicating the type of the message with index aMessageIndex . |
Object |
getMessageValue(int aMessageIndex,
TLcdDataProperty aProperty)
Retrieves the value of the
TLcdDataProperty for a given message index. |
ILcdPoint |
getPoint(int aPointIndex)
Retrieves the intended route position indicated by
aPointIndex . |
int |
getPointCount()
Returns the number of points in the intended route.
|
Object |
getValue(String aPropertyName)
Convenience method that returns the value of the property with the given name.
|
Object |
getValue(TLcdDataProperty aProperty)
Returns the value of the given property.
|
boolean |
hasValue(String aPropertyName)
Indicates whether this data object has a value for the given property.
|
boolean |
hasValue(TLcdDataProperty aProperty)
Indicates whether this data object has a value for the given property.
|
void |
insertIntoCache(Object aKey,
Object aObject)
Inserts a cache Object corresponding to the given key Object.
|
boolean |
isActive()
Returns whether or not this flight plan is still active.
|
Object |
removeCachedObject(Object aKey)
Looks up and removes the cached Object corresponding to the given key.
|
void |
setFeature(int aFeatureIndex,
Object aObject)
Sets the value of the flight plan feature with index
aFeatureIndex
for the flight plan at the current flight plan history index. |
void |
setFlightPlanHistoryIndex(int aFlightPlanHistoryIndex)
Updates the state of this flight plan so that it reflects the state of the
flight plan history at the given aFlightPlanHistoryIndex.
|
void |
setValue(String aPropertyName,
Object aValue)
Convenience method that sets the value of the property with the given name.
|
void |
setValue(TLcdDataProperty aProperty,
Object aValue)
Sets the value of the given property for this data object.
|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getPointSFCT, getX, getY, getZ
public TLcdASDIFlightPlan(TLcdASDIFlightPlanHistory aFlightPlanHistory)
TLcdASDIFlightPlan
that has a reference to a
TLcdASDIFlightPlanHistory
.aFlightPlanHistory
- The TLcdASDIFlightPlanHistory
on which this
TLcdASDIFlightPlan
is based.public int getFlightPlanHistoryIndex()
public void setFlightPlanHistoryIndex(int aFlightPlanHistoryIndex)
Updates the state of this flight plan so that it reflects the state of the flight plan history at the given aFlightPlanHistoryIndex.
It updates the features and the intended route of this flight plan, according to the given index.
Note that the method TLcdASDIFlightPlanHistory.getIndexForTimeStamp(long)
can be used to retrieve
the index for a given time value.
aFlightPlanHistoryIndex
- The flight plan index of the flight plan history,
0 <= aFlightPlanHistoryIndex < getFlightPlanCount().
Set this to -1 to mark the flight plan as inactive.public int getFeatureCount()
Returns the number of flight plan features from the associated flight plan history.
So it is equivalent to getFlightPlanHistory().getFlightPlanFeatureCount()
.
See TLcdASDIFlightPlanHistory.getFlightPlanFeatureCount()
for a more detailed
description.
getFeatureCount
in interface ILcdFeatured
public Object getFeature(int aFeatureIndex) throws IndexOutOfBoundsException
Returns the value of the flight plan feature at index aFeatureIndex
for the flight plan at the current flight plan history index. So it is equivalent to
getFlightPlanHistory().getFlightPlanFeature( getFlightPlanHistoryIndex(), aFeatureIndex )
.
See TLcdASDIFlightPlanHistory.getFlightPlanFeature(int aIndex, int aFeatureIndex)
for a more detailed
description.
getFeature
in interface ILcdFeatured
aFeatureIndex
- The index of the feature, must be smaller than getFeatureCount()
.aFeatureIndex
for the flight plan at the current flight plan history index.IndexOutOfBoundsException
- when an index is chosen greater than the result of getFeatureCount.ILcdFeatured.setFeature(int, java.lang.Object)
public boolean canSetFeature(int aFeatureIndex)
Checks whether the flight plan feature with index aFeatureIndex
of the flight plan at the current flight plan history index is editable.
See getFeatureCount()
and getFeature(int aFeatureIndex)
for more information on flight plan features.
None of the flight plan features are editable, so always returns false
.
canSetFeature
in interface ILcdFeatured
aFeatureIndex
- a valid feature index, must be smaller than getFeatureCount()
.false
.public void setFeature(int aFeatureIndex, Object aObject) throws IllegalArgumentException
Sets the value of the flight plan feature with index aFeatureIndex
for the flight plan at the current flight plan history index.
See getFeatureCount()
and getFeature(int aFeatureIndex)
for more information on flight plan features.
None of the flight plan features are editable, so calling this method always
results in throwing an IllegalArgumentException
.
setFeature
in interface ILcdFeatured
aFeatureIndex
- a valid feature index, must be smaller than getFeatureCount()
.aObject
- the new value of the feature.IllegalArgumentException
- if the feature can't be set.ILcdFeatured.getFeature(int)
,
ILcdFeatured.canSetFeature(int)
public TLcdASDIFlightPlanHistory getFlightPlanHistory()
Returns the TLcdASDIFlightPlanHistory
for which this
TLcdASDIFlightPlan
shows a window.
A TLcdASDIFlightPlan
represents a flight plan at a certain time and is
implemented as a TLcdASDIFlightPlanHistory
at a certain index.
Every TLcdASDIFlightPlan
has a reference to exactly one TLcdASDIFlightPlanHistory
.
TLcdASDIFlightPlanHistory
that is referenced by this TLcdASDIFlightPlan
.public int getPointCount()
getPointCount
in interface ILcdPointList
public ILcdPoint getPoint(int aPointIndex) throws IndexOutOfBoundsException
aPointIndex
.getPoint
in interface ILcdPointList
aPointIndex
- Determines what particular point you want to retrieve. Must be
smaller than getPointCount()
.IndexOutOfBoundsException
- if the given index is out of bounds.public int getMessageCount()
getMessageFeatureCount(int)
,
getMessageFeature(int, int)
,
getMessageType(int)
public int getMessageFeatureCount(int aMessageIndex)
aMessageIndex
.aMessageIndex
- The index of the message for which you want to know the feature count.
Must be smaller than getMessageCount()
.getMessageFeature(int, int)
public Object getMessageFeature(int aMessageIndex, int aFeatureIndex)
aFeatureIndex
for the message with index aMessageIndex
.aMessageIndex
- The index of the message for which you want to know the feature value.
Must be smaller than getMessageCount()
.aFeatureIndex
- Determines what particular feature value you want to retrieve. Must be
smaller than getMessageFeatureCount(int)
.public Object getMessageValue(int aMessageIndex, TLcdDataProperty aProperty)
TLcdDataProperty
for a given message index.
The data property must be of the correct data type. To find the data type, use the
getMessageDataType(int)
method. The properties for all data types returned by this method
are described in TLcdASDIMessageDataTypes
.aMessageIndex
- The index of the message for which you want to know the property value.
Must be smaller than getMessageCount()
.aProperty
- a TLcdDataProperty
that was declared in the data type returned by
getMessageDataType(int)
IllegalArgumentException
- when the given data property was not declared in the TLcdDataType
of the message. To make sure this does not happen, use getMessageDataType(int)
to obtain
the data type of the message beforehand.for more info on the properties and data types of a message
public String getMessageType(int aMessageIndex)
String
indicating the type of the message with index aMessageIndex
.
Message types correspond with the abbreviations of the messages used in the specification :
FZ, AF, DZ, UZ, AZ, RZ or RT.
For instance, the message type of FZ messages is the String
"FZ".aMessageIndex
- The index of the message for which you want to know the type.
Must be smaller than getMessageCount()
.String
indicating the type of the specified message, null if not known.public TLcdDataType getMessageDataType(int aMessageIndex)
TLcdDataType
of the message at the given index. This data type
will be supertyped by TLcdASDIMessageDataTypes.AbstractASDIMessageType
, and will be
one of the TLcdDataType
instances found in the TLcdASDIMessageDataTypes
class.aMessageIndex
- The index of the message for which you want to know the type.
Must be smaller than getMessageCount()
.TLcdDataType
of the message, of null if not known.TLcdASDIMessageDataTypes
public ILcdBounds getBounds()
ILcdBounds
by which the geometry of this ILcdBounded
object
is bounded.
If the geometry does not allow retrieving valid bounds (for example a polyline with 0 points)
the return value is unspecified.
It is highly recommended to return an undefined
bounds.
You can create undefined bounds using the default constructors
of TLcdLonLatBounds
or TLcdXYBounds
.
getPointCount()
and getPoint(int)
).getBounds
in interface ILcdBounded
ILcdBounds
by which the geometry of this ILcdBounded
object
is bounded.public boolean isActive()
TLcdASDIFlightPlanHistory.getBeginTime
and TLcdASDIFlightPlanHistory.getEndTime
,
this is, it represents the flight plan history at a certain valid index.
The data of an inactive flight plan should not be used or interpreted in any way.public Object clone()
Creates a shallow clone of this flightplan. The flightplan history will be shared between this instance and the cloned instance.
public void insertIntoCache(Object aKey, Object aObject)
ILcdCache
insertIntoCache
in interface ILcdCache
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, ...)
.aObject
- the Object to be cached.public Object getCachedObject(Object aKey)
ILcdCache
getCachedObject
in interface ILcdCache
aKey
- the key Object that was used for storing the cache Object.public Object removeCachedObject(Object aKey)
ILcdCache
removeCachedObject
in interface ILcdCache
aKey
- the key Object that was used for storing the cache Object.public void clearCache()
ILcdCache
clearCache
in interface ILcdCache
public TLcdDataType getDataType()
ILcdDataObject
null
.getDataType
in interface ILcdDataObject
public Object getValue(TLcdDataProperty aProperty)
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.
getValue
in interface ILcdDataObject
aProperty
- the property for which the value is to be returnedpublic void setValue(TLcdDataProperty aProperty, Object aValue)
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 thedata 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
.setValue
in interface ILcdDataObject
aProperty
- the property for which the value is to be setaValue
- the value to setTLcdDataType.getProperty(String)
public Object getValue(String aPropertyName)
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). SeeILcdDataObject.getValue(TLcdDataProperty)
for more information.getValue
in interface ILcdDataObject
aPropertyName
- the name of the property of which the value is to be returnedTLcdDataType.getProperty(String)
public void setValue(String aPropertyName, Object aValue)
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). SeeILcdDataObject.setValue(TLcdDataProperty, Object)
for more information.setValue
in interface ILcdDataObject
aPropertyName
- the name of the property of which the value is to be setaValue
- the value to setpublic boolean hasValue(TLcdDataProperty aProperty)
ILcdDataObject
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 IllegalArgumentExceptionaProperty
is null
: not allowed, you will get NullPointerExceptionhasValue
in interface ILcdDataObject
aProperty
- the property for which to return whether a value is present or not.true
if this data object has a value for the given property, false
otherwise.public boolean hasValue(String aPropertyName)
ILcdDataObject
ILcdDataObject.hasValue(TLcdDataProperty)
for more information.hasValue
in interface ILcdDataObject
aPropertyName
- the name of the property for which to return whether a value is present
or not.true
if this data object has a value for the property with the given name,
false
otherwise.