Class TLcdAIXMProcedureHandler
- All Implemented Interfaces:
ILcdAIXMHandler
ILcdAIXMHandler
deals with procedures (SID, STAR, IAP),
which are defined in AIXM by Sid, Sia, Iap elements. Decoded models have as model descriptor
an instance of TLcdAIXMProcedureTrajectoryModelDescriptor
.
The objects in decoded models are based on the AIS domain objects available in com.luciad.ais.model
,
which all implement ILcdDataObject
. This interface provides a generic and
format-independent way of accessing the type and properties (features) of a domain object.
For this handler, the type of the decoded objects is TLcdAIXMDataTypes.Procedure
,
which can also be retrieved through ILcdDataObject.getDataType()
.
The available properties of the objects are defined in TLcdAIXMProcedureDataProperties
.
The values for these properties can be retrieved through ILcdDataObject.getValue(com.luciad.datamodel.TLcdDataProperty)
.
Next to ILcdDataObject
, the objects in decoded models also implement ILcdFeatured
,
the former interface to access the properties (features) of a domain object.
This is still fully supported, and explained in the following comments.
setProcedureFeatureNamesToBeDecoded
method
allows the user to specify which AIXM features are decoded into the featured model objects.
If no feature names to be decoded are specified, all features will be decoded.
The following fields (taken from the AIXM specification) are supported
by the decoder. The list indicates into which feature or attribute the fields are decoded.
It also indicates from which AIXM version on they are available.
Procedure features:
- Version 3.3 :
- Designator: ILcdAIXMProcedureFeature.DESIGNATOR,
ILcdProcedure.getDesignator()
- Aerodrome identifier: ILcdAIXMProcedureFeature.AERODROME_IDENTIFIER,
ILcdProcedure.getAerodrome()
- Aircraft category: ILcdAIXMProcedureFeature.AIRCRAFT_CATEGORY
- Transition identifier: ILcdAIXMProcedureFeature.TRANSITION_IDENTIFIER
- Type: ILcdAIXMProcedureFeature.TYPE,
ILcdProcedure.getType()
- Route type: ILcdAIXMProcedureFeature.ROUTE_TYPE
- Required navigation performance: ILcdAIXMProcedureFeature.REQUIRED_NAVIGATION_PERFORMANCE
- Communication failure description: ILcdAIXMProcedureFeature.COMMUNICATION_FAILURE_DESCRIPTION
- Textual description of the procedure: ILcdAIXMProcedureFeature.DESCRIPTION
- Runway direction associated with the procedure (SID, IAP): ILcdAIXMProcedureFeature.RUNWAY_DIRECTION_DESIGNATOR
- FATO direction associated with the procedure (SID, IAP): ILcdAIXMProcedureFeature.FATO_DIRECTION_DESIGNATOR
- TLOF direction associated with the procedure (IAP): ILcdAIXMProcedureFeature.TLOF_DIRECTION_DESIGNATOR
- Artificial unique identifier: ILcdAIXMProcedureFeature.MID
- Remarks: ILcdAIXMProcedureFeature.REMARK
- Designator: ILcdAIXMProcedureFeature.DESIGNATOR,
- Version 4.0, 4.5 : no extra fields added.
- Version 3.3 :
- Fix:
ILcdProcedureLeg.getFix()
- Arc centre fix:
ILcdProcedureLeg.getArcCentreFix()
- Recommended navaid:
ILcdProcedureLeg.getRecommendedNavaid()
- Phase: ILcdAIXMProcedureLegFeature.PHASE
- Type:
ILcdProcedureLeg.getType()
- Course:
ILcdProcedureLeg.getCourse()
(degrees) - Course type: ILcdAIXMProcedureLegFeature.COURSE_TYPE
- Direction of the turn:
ILcdProcedureLeg.getTurnDirectionType()
- Fly-by or fly-over:
ILcdProcedureLeg.getFixOverflyType()
- Interpretation of vertical distance:
ILcdProcedureLeg.getAltitudeDescription()
- Reference used when measuring upper vertical distances: ILcdAIXMProcedureLegFeature.UPPER_LIMIT_REFERENCE
- Upper limit:
ILcdProcedureLeg.getAltitudeUpper()
(meters) - Reference used when measuring lower vertical distances: ILcdAIXMProcedureLegFeature.LOWER_LIMIT_REFERENCE
- Lower limit:
ILcdProcedureLeg.getAltitudeLower()
(meters) - Declared length:
ILcdProcedureLeg.getDistance()
(meters) - Declared duration:
ILcdProcedureLeg.getDuration()
(seconds) - Theta:
ILcdProcedureLeg.getTheta()
(degrees) - Rho:
ILcdProcedureLeg.getRho()
(meters) - Role of fix (IAP):
ILcdProcedureLeg.getIAPFixRole()
- Remarks: ILcdAIXMProcedureLegFeature.REMARK
- Fix:
- Version 4.0, 4.5 : no extra fields added.
- This handler currently only supports snapshot files.
-
The following procedure features are currently not supported:
- Associated MSA
- Obstacle clearances for an IAP
- Usage information
-
The following procedure leg features are currently not supported:
- Vertical climb angle
- Speed limit
- Recommended bank angle
- ATC reporting
- Since:
- 6.2
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Finalizes the geometry of the decodedTLcdProcedureTrajectory
objects.void
endElement
(String aElementName, String aContent, Stack aElementStack) Receive notification of the end of an AIXM element.Returns the currently registered filter.Returns the bounds that will be used as a filter on the model created by this handler.Returns the factory to be used to create domain objects.Deprecated.String[]
Returns the elements for which the methodsstartElement
andendElement
should be invoked.Returns the bounds to be used as initial bounds for the model created by this handler.getModel()
Returns the model build by this handler.String[]
Returns the AIXM procedure features which are decoded into the featured model objects.String[]
Returns the AIXM procedure leg features which are decoded into the featured model objects.boolean
Deprecated.This method has been deprecated.void
newModel
(String aSource, ILcdAIXMErrorMessageSupport aErrorMessage) Resets the internal state of this handler so that it is ready to handle a new data source from scratch.void
setAIXMModelFilter
(ILcdAIXMModelFilter aFilter) Specifies a filter to be used while creating the model.void
setBoundsToFilterOn
(ILcdBounds aBoundsToFilterOn) Specifies a bounds that will be used as a filter on the model created by this handler.static void
setClassTraceOn
(boolean aClassTraceOn) Deprecated.This method has been deprecated.void
setDataObjectFactory
(TLcdAISDataObjectFactory aFactory) Specifies the factory to be used to create domain objects.void
setDomainFactory
(ALcdAISObjectFactory aDomainFactory) Deprecated.void
setInitialBounds
(ILcdBounds aInitialBounds) Specifies a bounds to be used as initial bounds for the model created by this handler.boolean
setModelToUpdate
(String aSource, ILcdModel aModel, ILcdAIXMErrorMessageSupport aErrorMessage) Sets the internal state of this handler so that it is ready to update the given model with a new data source.void
setProcedureFeatureNamesToBeDecoded
(String[] aProcedureFeatureNamesToBeDecoded) Sets the AIXM procedure features which need to be decoded into the featured model objects.void
setProcedureLegFeatureNamesToBeDecoded
(String[] aProcedureLegFeatureNamesToBeDecoded) Sets the AIXM procedure leg features which need to be decoded into the featured model objects.void
setTraceOn
(boolean aTraceOn) Deprecated.This method has been deprecated.void
Receive notification of the beginning of an AIXM document.void
startElement
(String aElementName, ILcdAssocSet aAttributes, Stack aElementStack) Receive notification of the beginning of an AIXM element.void
Applies the updates that are read to the model.
-
Constructor Details
-
TLcdAIXMProcedureHandler
public TLcdAIXMProcedureHandler()Creates a newTLcdAIXMProcedureHandler
.
-
-
Method Details
-
startDocument
public void startDocument()Description copied from interface:ILcdAIXMHandler
Receive notification of the beginning of an AIXM document.- Specified by:
startDocument
in interfaceILcdAIXMHandler
- See Also:
-
startElement
Description copied from interface:ILcdAIXMHandler
Receive notification of the beginning of an AIXM element.This method will be invoked at the beginning of every element in the AIXM document; there will be a corresponding
endElement
event for every startElement event (even when the element is empty). All of the element's content will be reported, in order, before the corresponding endElement event.The attributes attached to the element are available through an immutable
ILcdAssocSet
. Only the following methods of the interface are available:- public int size()
- public boolean hasValue(Object aObject)
- public Object getValue(Object aKey)
- public Enumeration keys()
- public Enumeration elements()
UnsupportedOperationException
will be thrown if one of the other methods are called.- Parameters:
aElementName
- The name of the element.aAttributes
- The attributes attached to the element.aElementStack
- A stack containing the element names of all the parents of the current element and itself.- See Also:
-
endElement
Description copied from interface:ILcdAIXMHandler
Receive notification of the end of an AIXM element.This method will be invoked at the end of every element in the AIXM document; there will be a corresponding
startElement
event for every endElement event (even when the element is empty).- Parameters:
aElementName
- The name of the element.aContent
- The contents of the current element, or the empty string if the element was empty.aElementStack
- A stack containing the element names of all the parents of the current element and itself.
-
endDocument
public void endDocument()Finalizes the geometry of the decodedTLcdProcedureTrajectory
objects.- Specified by:
endDocument
in interfaceILcdAIXMHandler
- See Also:
-
getProcedureFeatureNamesToBeDecoded
Returns the AIXM procedure features which are decoded into the featured model objects.- Returns:
- the AIXM procedure features which are decoded into the featured model objects.
-
setProcedureFeatureNamesToBeDecoded
Sets the AIXM procedure features which need to be decoded into the featured model objects. By default, all available features are decoded. Note that AIXM handlers rely on a specific set of key features that uniquely define an object. This set of features must always be included in the set of features to be decoded. See the class documentation for the key feature list of this handler.- Parameters:
aProcedureFeatureNamesToBeDecoded
- the AIXM procedure features which need to be decoded into the featured model objects.
-
getProcedureLegFeatureNamesToBeDecoded
Returns the AIXM procedure leg features which are decoded into the featured model objects.- Returns:
- the AIXM procedure leg features which are decoded into the featured model objects.
-
setProcedureLegFeatureNamesToBeDecoded
Sets the AIXM procedure leg features which need to be decoded into the featured model objects. By default, all available features are decoded.- Parameters:
aProcedureLegFeatureNamesToBeDecoded
- the AIXM procedure leg features which need to be decoded into the featured model objects.
-
newModel
Description copied from interface:ILcdAIXMHandler
Resets the internal state of this handler so that it is ready to handle a new data source from scratch.The user should call this method before using this handler in a decoding process of an AIXM snapshot.
- Specified by:
newModel
in interfaceILcdAIXMHandler
- Parameters:
aSource
- the name of the source that will be handledaErrorMessage
- for each irregular situation during the decoding, a report should be added to this object
-
setModelToUpdate
public boolean setModelToUpdate(String aSource, ILcdModel aModel, ILcdAIXMErrorMessageSupport aErrorMessage) Description copied from interface:ILcdAIXMHandler
Sets the internal state of this handler so that it is ready to update the given model with a new data source.The user should call this method before using this handler in a decoding process of an AIXM update.
- Specified by:
setModelToUpdate
in interfaceILcdAIXMHandler
- Parameters:
aSource
- the name of the source that will be handledaModel
- the model that must be updatedaErrorMessage
- for each irregular situation during the decoding, a report should be added to this object
-
setDomainFactory
Deprecated.Description copied from interface:ILcdAIXMHandler
Specifies the domainFactory to be used to create domain objects.The given domainFactory must not be null. Note that if a data object factory is set, the domain factory will not be used.
- Specified by:
setDomainFactory
in interfaceILcdAIXMHandler
- Parameters:
aDomainFactory
- the domainFactory to be used to create domain objects- See Also:
-
getDomainFactory
Deprecated.Description copied from interface:ILcdAIXMHandler
Returns the domainFactory to be used to create domain objects.- Specified by:
getDomainFactory
in interfaceILcdAIXMHandler
- Returns:
- the domainFactory to be used to create domain objects
- See Also:
-
setDataObjectFactory
Description copied from interface:ILcdAIXMHandler
Specifies the factory to be used to create domain objects.The given factory must not be null.
- Specified by:
setDataObjectFactory
in interfaceILcdAIXMHandler
- Parameters:
aFactory
- the domainFactory to be used to create domain objects- See Also:
-
getDataObjectFactory
Description copied from interface:ILcdAIXMHandler
Returns the factory to be used to create domain objects.- Specified by:
getDataObjectFactory
in interfaceILcdAIXMHandler
- Returns:
- the factory to be used to create domain objects
- See Also:
-
updateModel
public void updateModel()Description copied from interface:ILcdAIXMHandler
Applies the updates that are read to the model.Please remark that this handler is only capable of updating the model if the user calls
- the
setModelToUpdate
method to set the model that has to be updated, - the
startDocument
method before the first call of thestartElement
method, - the
startElement
method each time the beginning of an element in the data source is found, - the
endElement
method each time the end of an element in the data source is found, - the
endDocument
method after the last call of theendElement
method.
- Specified by:
updateModel
in interfaceILcdAIXMHandler
- the
-
getModel
Description copied from interface:ILcdAIXMHandler
Returns the model build by this handler.Please remark that this handler is only capable of creating the expected model if the user calls
- the
newModel
method to reset the internal state before he or she starts the decoding process, - the
startDocument
method before the first call of thestartElement
method, - the
startElement
method each time the beginning of an element in the data source is found, - the
endElement
method each time the end of an element in the data source is found, - the
endDocument
method after the last call of theendElement
method.
- Specified by:
getModel
in interfaceILcdAIXMHandler
- Returns:
- the model build by this handler
- the
-
setBoundsToFilterOn
Description copied from interface:ILcdAIXMHandler
Specifies a bounds that will be used as a filter on the model created by this handler.If this bounds is null, all objects found in the data source will be inserted into the model. If this bounds is not null, only the objects whose bounds interact with the specified bounds will be inserted into the model.
- Specified by:
setBoundsToFilterOn
in interfaceILcdAIXMHandler
- Parameters:
aBoundsToFilterOn
- the bounds to be used as a filter
-
getBoundsToFilterOn
Description copied from interface:ILcdAIXMHandler
Returns the bounds that will be used as a filter on the model created by this handler.- Specified by:
getBoundsToFilterOn
in interfaceILcdAIXMHandler
- Returns:
- the bounds that will be used as a filter on the model created by this handler
- See Also:
-
setInitialBounds
Description copied from interface:ILcdAIXMHandler
Specifies a bounds to be used as initial bounds for the model created by this handler.This bounds should be large enough to enclose (most of) the model objects. This option is used to avoid to many expansions of the model bounds.
This parameter may be null.
Note: This bounds is not a filter! If a model objects bounds does not interact with aInitialBounds, aInitialBounds will be enlarged to enclose the object.
- Specified by:
setInitialBounds
in interfaceILcdAIXMHandler
- Parameters:
aInitialBounds
- the initial bounds for the model created by this handler
-
getInitialBounds
Description copied from interface:ILcdAIXMHandler
Returns the bounds to be used as initial bounds for the model created by this handler.- Specified by:
getInitialBounds
in interfaceILcdAIXMHandler
- Returns:
- bounds to be used as initial bounds for the model created by this handler
- See Also:
-
setAIXMModelFilter
Description copied from interface:ILcdAIXMHandler
Specifies a filter to be used while creating the model. Only model objects that pass through the filter will be in the resulting model.- Specified by:
setAIXMModelFilter
in interfaceILcdAIXMHandler
- Parameters:
aFilter
- anILcdAIXMModelFilter
to filter the model objects
-
getAIXMModelFilter
Returns the currently registered filter.- Returns:
- the currently registered filter (can be null).
-
getElementsToBeHandled
Description copied from interface:ILcdAIXMHandler
Returns the elements for which the methodsstartElement
andendElement
should be invoked.These elements must be a direct child of one of the following AIXM elements:
- AIXM-Snapshot
- Changed
- New
- Withdrawn
- Specified by:
getElementsToBeHandled
in interfaceILcdAIXMHandler
- Returns:
- A
String
array containing the elements for which the methodsstartElement
andendElement
should be invoked.
-
isTraceOn
public boolean isTraceOn()Deprecated.This method has been deprecated. It is recommended to use the standard Java logging framework directly.Returnstrue
if tracing is enabled for this class.- Returns:
- true if tracing is enabled for this class, false otherwise.
-
setClassTraceOn
public static void setClassTraceOn(boolean aClassTraceOn) Deprecated.This method has been deprecated. It is recommended to use the standard Java logging framework directly.Enables tracing for all instances of this class. If the argument istrue
then all log messages are recorded, otherwise only the informative, warning and error messages are recorded.- Parameters:
aClassTraceOn
- if true then all log messages are recorded, otherwise only the informative, warning and error messages are recorded.
-
setTraceOn
public void setTraceOn(boolean aTraceOn) Deprecated.This method has been deprecated. It is recommended to use the standard Java logging framework directly.Enables tracing for this class instance. Calling this method with eithertrue
orfalse
as argument automatically turns off tracing for all other class instances for whichsetTraceOn
has not been called. If the argument isfalse
then only the informative, warning and error log messages are recorded.- Parameters:
aTraceOn
- if true then all log messages are recorded for this instance. If false, then only the informative, warning and error log messages are recorded.
-