Class TLcdAIXMNDBHandler
- All Implemented Interfaces:
ILcdAIXMHandler
ILcdAIXMHandler deals
with NDB elements. Decoded models have as model descriptor an instance of
TLcdAIXMNDBModelDescriptor.
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.NDB,
which can also be retrieved through ILcdDataObject.getDataType().
The available properties of the objects are defined in TLcdAIXMNDBDataProperties.
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.
setNDBFeatureNamesToBeDecoded 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.
- Version 3.3 :
- Identifier: ILcdAIXMNDBFeature.IDENTIFIER
- Name: ILcdAIXMNDBFeature.NAME
- NAVAID Class: ILcdAIXMNDBFeature.NAVAID_CLASS
- Classification: ILcdAIXMNDBFeature.CLASSIFICATION
- Position: ILcdAIXMNDBFeature.POSITION
- Beginning date: ILcdAIXMNDBFeature.DATE_FROM
- End date: ILcdAIXMNDBFeature.DATE_TILL
- Artificial unique identifier: ILcdAIXMNDBFeature.MID
- Frequency: ILcdAIXMNDBFeature.FREQUENCY, ILcdAIXMNDBFeature.FREQUENCY_UNIT
- Emission: ILcdAIXMNDBFeature.EMISSION
- Organization name: ILcdAIXMNDBFeature.ORGANISATION
- Magnetic variation: ILcdAIXMNDBFeature.MAGNETIC_VARIATION, ILcdAIXMNDBFeature.MAGNETIC_VARIATION_DATE
- Elevation: ILcdAIXMNDBFeature.ELEVATION
- Elevation accuracy: ILcdAIXMNDBFeature.ELEVATION_ACCURACY
- Geographical accuracy: ILcdAIXMNDBFeature.GEO_ACCURACY, ILcdAIXMNDBFeature.GEO_ACCURACY_UNIT
- Geoid undulation: ILcdAIXMNDBFeature.GEOID_UNDULATION
- Vertical datum: ILcdAIXMNDBFeature.VERTICAL_DATUM
- Vertical distance unit: ILcdAIXMNDBFeature.VERTICAL_DISTANCE_UNIT
- Original latitude: ILcdAIXMNDBFeature.ORIGINAL_LATITUDE
- Original longitude: ILcdAIXMNDBFeature.ORIGINAL_LONGITUDE
- Original horizontal datum: ILcdAIXMNDBFeature.ORIGINAL_DATUM
- Free text remarks: ILcdAIXMNDBFeature.REMARK
- Version 4.0, 4.5 : no extra fields added.
- NDB Timetable
- Features of the responsible organization or authority (except for the name)
- NDB Limitation
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidReceive notification of the end of an AIXM document.voidendElement(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 methodsstartElementandendElementshould 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 NDB features which are decoded into the featured model objects.booleanDeprecated.This method has been deprecated.voidnewModel(String aSource, ILcdAIXMErrorMessageSupport aErrorMessage) Resets the internal state of this handler so that it is ready to handle a new data source from scratch.voidsetAIXMModelFilter(ILcdAIXMModelFilter aFilter) Specifies a filter to be used while creating the model.voidsetBoundsToFilterOn(ILcdBounds aBoundsToFilterOn) Specifies a bounds that will be used as a filter on the model created by this handler.static voidsetClassTraceOn(boolean aClassTraceOn) Deprecated.This method has been deprecated.voidsetDataObjectFactory(TLcdAISDataObjectFactory aFactory) Specifies the factory to be used to create domain objects.voidsetDomainFactory(ALcdAISObjectFactory aDomainFactory) Deprecated.voidsetInitialBounds(ILcdBounds aInitialBounds) Specifies a bounds to be used as initial bounds for the model created by this handler.booleansetModelToUpdate(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.voidsetNDBFeatureNamesToBeDecoded(String[] aNDBFeatureNamesToBeDecoded) Sets the AIXM NDB features which need to be decoded into the featured model objects.voidsetTraceOn(boolean aTraceOn) Deprecated.This method has been deprecated.voidReceive notification of the beginning of an AIXM document.voidstartElement(String aElementName, ILcdAssocSet aAttributes, Stack aElementStack) Receive notification of the beginning of an AIXM element.voidApplies the updates that are read to the model.
-
Constructor Details
-
TLcdAIXMNDBHandler
public TLcdAIXMNDBHandler()Creates a newTLcdAIXMNDBHandlerinstance.
-
-
Method Details
-
startElement
Description copied from interface:ILcdAIXMHandlerReceive 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
endElementevent 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()
UnsupportedOperationExceptionwill 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:ILcdAIXMHandlerReceive 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
startElementevent 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.
-
getNDBFeatureNamesToBeDecoded
Returns the AIXM NDB features which are decoded into the featured model objects.- Returns:
- the AIXM NDB features which are decoded into the featured model objects.
-
setNDBFeatureNamesToBeDecoded
Sets the AIXM NDB 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:
aNDBFeatureNamesToBeDecoded- the AIXM NDB features which need to be decoded into the featured model objects.
-
newModel
Description copied from interface:ILcdAIXMHandlerResets 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:
newModelin 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:ILcdAIXMHandlerSets 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:
setModelToUpdatein 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
-
startDocument
public void startDocument()Description copied from interface:ILcdAIXMHandlerReceive notification of the beginning of an AIXM document.- Specified by:
startDocumentin interfaceILcdAIXMHandler- See Also:
-
endDocument
public void endDocument()Description copied from interface:ILcdAIXMHandlerReceive notification of the end of an AIXM document.- Specified by:
endDocumentin interfaceILcdAIXMHandler- See Also:
-
setDomainFactory
Deprecated.Description copied from interface:ILcdAIXMHandlerSpecifies 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:
setDomainFactoryin interfaceILcdAIXMHandler- Parameters:
aDomainFactory- the domainFactory to be used to create domain objects- See Also:
-
getDomainFactory
Deprecated.Description copied from interface:ILcdAIXMHandlerReturns the domainFactory to be used to create domain objects.- Specified by:
getDomainFactoryin interfaceILcdAIXMHandler- Returns:
- the domainFactory to be used to create domain objects
- See Also:
-
setDataObjectFactory
Description copied from interface:ILcdAIXMHandlerSpecifies the factory to be used to create domain objects.The given factory must not be null.
- Specified by:
setDataObjectFactoryin interfaceILcdAIXMHandler- Parameters:
aFactory- the domainFactory to be used to create domain objects- See Also:
-
getDataObjectFactory
Description copied from interface:ILcdAIXMHandlerReturns the factory to be used to create domain objects.- Specified by:
getDataObjectFactoryin interfaceILcdAIXMHandler- Returns:
- the factory to be used to create domain objects
- See Also:
-
updateModel
public void updateModel()Description copied from interface:ILcdAIXMHandlerApplies 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
setModelToUpdatemethod to set the model that has to be updated, - the
startDocumentmethod before the first call of thestartElementmethod, - the
startElementmethod each time the beginning of an element in the data source is found, - the
endElementmethod each time the end of an element in the data source is found, - the
endDocumentmethod after the last call of theendElementmethod.
- Specified by:
updateModelin interfaceILcdAIXMHandler
- the
-
getModel
Description copied from interface:ILcdAIXMHandlerReturns the model build by this handler.Please remark that this handler is only capable of creating the expected model if the user calls
- the
newModelmethod to reset the internal state before he or she starts the decoding process, - the
startDocumentmethod before the first call of thestartElementmethod, - the
startElementmethod each time the beginning of an element in the data source is found, - the
endElementmethod each time the end of an element in the data source is found, - the
endDocumentmethod after the last call of theendElementmethod.
- Specified by:
getModelin interfaceILcdAIXMHandler- Returns:
- the model build by this handler
- the
-
setBoundsToFilterOn
Description copied from interface:ILcdAIXMHandlerSpecifies 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:
setBoundsToFilterOnin interfaceILcdAIXMHandler- Parameters:
aBoundsToFilterOn- the bounds to be used as a filter
-
getBoundsToFilterOn
Description copied from interface:ILcdAIXMHandlerReturns the bounds that will be used as a filter on the model created by this handler.- Specified by:
getBoundsToFilterOnin 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:ILcdAIXMHandlerSpecifies 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:
setInitialBoundsin interfaceILcdAIXMHandler- Parameters:
aInitialBounds- the initial bounds for the model created by this handler
-
getInitialBounds
Description copied from interface:ILcdAIXMHandlerReturns the bounds to be used as initial bounds for the model created by this handler.- Specified by:
getInitialBoundsin interfaceILcdAIXMHandler- Returns:
- bounds to be used as initial bounds for the model created by this handler
- See Also:
-
setAIXMModelFilter
Description copied from interface:ILcdAIXMHandlerSpecifies 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:
setAIXMModelFilterin interfaceILcdAIXMHandler- Parameters:
aFilter- anILcdAIXMModelFilterto filter the model objects
-
getAIXMModelFilter
Returns the currently registered filter.- Returns:
- the currently registered filter (can be null).
-
getElementsToBeHandled
Description copied from interface:ILcdAIXMHandlerReturns the elements for which the methodsstartElementandendElementshould be invoked.These elements must be a direct child of one of the following AIXM elements:
- AIXM-Snapshot
- Changed
- New
- Withdrawn
- Specified by:
getElementsToBeHandledin interfaceILcdAIXMHandler- Returns:
- A
Stringarray containing the elements for which the methodsstartElementandendElementshould be invoked.
-
isTraceOn
public boolean isTraceOn()Deprecated.This method has been deprecated. It is recommended to use the standard Java logging framework directly.Returnstrueif 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 istruethen 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 eithertrueorfalseas argument automatically turns off tracing for all other class instances for whichsetTraceOnhas not been called. If the argument isfalsethen 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.
-