Class TLcdDAFIFTVFRRouteDecoder
- All Implemented Interfaces:
ILcdInputStreamFactoryCapable,ILcdModelDecoder
ILcdModelDecoder that decodes DAFIFT VFR route objects from
the specified source directory. The decoded models have as model descriptor an instance of
TLcdDAFIFVFRRouteModelListDescriptor.
The resulting model list will contain submodels for:
- VFR routes,
- offset routes,
- aerodromes for which the VFR routes serve (optional).
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 types of the decoded objects are TLcdDAFIFTDataTypes.VFRRoute,
TLcdDAFIFTDataTypes.VFROffsetRoute and TLcdDAFIFTDataTypes.VFRRoutePoint,
which can also be retrieved through ILcdDataObject.getDataType().
The available properties of the objects are defined in TLcdDAFIFTVFRRouteDataProperties,
TLcdDAFIFTVFROffsetRouteDataProperties and TLcdDAFIFTVFRRoutePointDataProperties.
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.
VFR route data includes data about aerodromes, served by the VFR and offset routes. To decode
the available aerodrome information as well, use the setAddAerodromes
method. For the aerodromes, there is no feature selection possible. All aerodrome features will
be decoded.
setVFRRouteFeaturesToBeDecoded and setOffsetRouteFeaturesToBeDecoded methods allow the user to
specify which DAFIFT features are to be decoded into the featured model objects. If no features
are specified, all features will be decoded.
The following fields (which are taken from the National Imagery and Mapping Agency (NIMA)
Product Specifications for Digital Aeronautical Flight Information File (DAFIF), Eight Edition,
January 2005) are supported by the decoder. The list indicates into which feature the fields
are decoded. For VFR Arrival/Departure route fields:
- AIRPORT/HELIPORT IDENTIFICATION:
ILcdDAFIFVFRRouteFeature.AIRPORT_ID - ICAO CODE:
ILcdDAFIFVFRRouteFeature.ICAO_CODE - CYCLE DATE:
ILcdDAFIFVFRRouteFeature.CYCLE_DATE
- POINT NAME/CHECKPOINT:
ILcdDAFIFVFRRoutePointFeature.POINT_NAME - POINT IDENTITY:
ILcdDAFIFVFRRoutePointFeature.POINT_IDENTITY - POINT COORDINATES UTM:
ILcdDAFIFVFRRoutePointFeature.UTM_COORDINATES - POINT TYPE:
ILcdDAFIFVFRRoutePointFeature.POINT_TYPE - POINT SYMBOL:
ILcdDAFIFVFRRoutePointFeature.POINT_SYMBOL - AT HELIPORT/AIRPORT:
ILcdDAFIFVFRRoutePointFeature.AT_HELIPORT_AIRPORT - SEGMENT NAME:
ILcdDAFIFVFRRoutePointFeature.SEGMENT_NAME - MAGNETIC COURSE:
ILcdDAFIFVFRRoutePointFeature.COURSE,ILcdDAFIFVFRRoutePointFeature.COURSE_TYPE - PATH CODE:
ILcdDAFIFVFRRoutePointFeature.PATH_CODE - ALTITUDE DESCRIPTION CODE:
ILcdDAFIFVFRRoutePointFeature.ALTITUDE_DESCRIPTION_CODE - ALTITUDE:
ILcdDAFIFVFRRoutePointFeature.ALTITUDE,ILcdDAFIFVFRRoutePointFeature.ALTITUDE_UNIT - TURN DIRECTION:
ILcdDAFIFVFRRoutePointFeature.TURN_DIRECTION
- ILcdDAFIFVFRRouteFeature.AIRPORT_ID
- ILcdDAFIFVFRRouteFeature.ROUTE_ID
- Since:
- 7.2
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionTLcdDAFIFTVFRRouteDecoder(ALcdAISObjectFactory aDomainFactory) Deprecated.TLcdDAFIFTVFRRouteDecoder(ALcdAISObjectFactory aDomainFactory, boolean aAddAerodromes) Deprecated.Constructs a newTLcdDAFIFTVFRRouteDecoderobject.TLcdDAFIFTVFRRouteDecoder(TLcdAISDataObjectFactory aFactory, boolean aAddAerodromes) Constructs a newTLcdDAFIFTVFRRouteDecoderobject. -
Method Summary
Modifier and TypeMethodDescriptionbooleancanDecodeSource(String aSource) Returnstrueif the specified source is: A file with the specific name corresponding to the object type of this decoder A directory containing such a file A.tocfile in a directory, pointing to such a fileReturns a model list containing one or more submodels.Returns the factory that is used to create domain objects.Returns a short, displayable name for the format that is decoded by thisILcdModelDecoder.Deprecated.Returns the error message of the last decode call.Returns the input stream factory that is currently used for creating the input streams for the given source names.intReturns the number of error reports to be added to the error message.Returns the record filter that is currently used.String[]getUniqueKeyFeatureNames(int aIndex) Returns for the given submodel the array ofStringobjects containing the names of the features that will be used as a unique key to insert objects into the submodel.booleanReturns a boolean indicating whether the submodel of aerodromes will be added or not.voidsetAddAerodromes(boolean aValue) Specifies whether a submodel of aerodromes should be added.voidsetDataObjectFactory(TLcdAISDataObjectFactory aFactory) Specifies the data factory.voidsetDomainFactory(ALcdAISObjectFactory aDomainFactory) Deprecated.voidsetInputStreamFactory(ILcdInputStreamFactory aInputStreamFactory) Sets the input stream factory that will be used for creating the input streams for the given source names.voidsetMaxNumberOfErrorReports(int aMaxNumberOfErrorReports) Specifies a value for the maximum number of error reports.voidsetOffsetRouteDefaultDisplayNameIndex(int aIndex) Specifies the index of the feature to be the offset route display name.voidsetOffsetRouteFeaturesToBeDecoded(String[] aFeaturesToBeDecoded) Specifies the offset route features to be decoded into the model objects.voidsetRecordFilter(ILcdDAFIFTRecordFilter aRecordFilter) Specifies a filter to be used while creating the model.voidsetVFRRouteDefaultDisplayNameIndex(int aIndex) Specifies the index of the feature to be the VFR route display name.voidsetVFRRouteFeaturesToBeDecoded(String[] aFeaturesToBeDecoded) Specifies the VFR route features to be decoded into the model objects.Methods inherited from class com.luciad.format.dafift.decoder.ALcdDAFIFTModelDecoder
getDecodingBounds, getModelFilter, setDecodingBounds, setModelFilterMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.luciad.model.ILcdModelDecoder
canDecodeSource, canDecodeSource, decodeModelMetadata, decodeModelMetadata, decodeSource, discoverDataSources
-
Constructor Details
-
TLcdDAFIFTVFRRouteDecoder
Deprecated.Constructs a newTLcdDAFIFTVFRRouteDecoderobject. The user should specify which aDomainFactory he or she wants to use to create the VFR routes, the aerodromes and the heliports. The addAerodromes property will be set totrue.- Parameters:
aDomainFactory- The factory to be used to create the model objects.
-
TLcdDAFIFTVFRRouteDecoder
Constructs a newTLcdDAFIFTVFRRouteDecoderobject. The user should specify which factory he or she wants to use to create the VFR routes, the aerodromes and the heliports. The addAerodromes property will be set totrue.- Parameters:
aFactory- The factory to be used to create the model objects.
-
TLcdDAFIFTVFRRouteDecoder
@Deprecated public TLcdDAFIFTVFRRouteDecoder(ALcdAISObjectFactory aDomainFactory, boolean aAddAerodromes) Deprecated.Constructs a newTLcdDAFIFTVFRRouteDecoderobject. The user should specify which aDomainFactory he or she wants to use to create the VFR routes, the aerodromes and the heliports.- Parameters:
aDomainFactory- The factory to be used to create the model objects.aAddAerodromes- Abooleanindicating whether a submodel containing the aerodromes should be added or not.
-
TLcdDAFIFTVFRRouteDecoder
Constructs a newTLcdDAFIFTVFRRouteDecoderobject. The user should specify which aDomainFactory he or she wants to use to create the VFR routes, the aerodromes and the heliports.- Parameters:
aFactory- The factory to be used to create the model objects.aAddAerodromes- Abooleanindicating whether a submodel containing the aerodromes should be added or not.
-
-
Method Details
-
getDisplayName
Description copied from interface:ILcdModelDecoderReturns a short, displayable name for the format that is decoded by thisILcdModelDecoder.- Specified by:
getDisplayNamein interfaceILcdModelDecoder- Overrides:
getDisplayNamein classALcdDAFIFTModelDecoder- Returns:
- the displayable name of this
ILcdModelDecoder.
-
decode
Returns a model list containing one or more submodels. Each submodel contains domain objects of the same type. The models will be build by looping through the records found in the source file. Each record that passes the record filter (getRecordFilter()) will be decoded. A decoded record needs to pass two additional filters (a model filtergetModelFilter()and a bounds filtergetDecodingBounds()) before it can be added to the model. Furthermore, an error message will be initialized and filled with reports about errors occurred during the decode process. By default, all reports will be added into the error message. The methodsetMaxNumberOfErrorReports(int)can be used to adjust this setting. If the property 'addAerodrome' is set totrue, the aerodrome and heliport model are decoded first, before the actual decoding starts.- Specified by:
decodein interfaceILcdModelDecoder- Parameters:
aSource- Either the directory containing the DAFIFT source file to decode or the DAFIFT source file itself.- Returns:
- the model build by reading the file found with the given source.
- Throws:
IOException- if an error occurs during the reading process.- See Also:
-
setVFRRouteDefaultDisplayNameIndex
public void setVFRRouteDefaultDisplayNameIndex(int aIndex) Specifies the index of the feature to be the VFR route display name.- Parameters:
aIndex- The index of the feature to be the VFR route display name.
-
setOffsetRouteDefaultDisplayNameIndex
public void setOffsetRouteDefaultDisplayNameIndex(int aIndex) Specifies the index of the feature to be the offset route display name.- Parameters:
aIndex- The index of the feature to be the offset route display name.
-
setVFRRouteFeaturesToBeDecoded
Specifies the VFR route features to be decoded into the model objects. Please make sure that theAIRPORT_IDandROUTE_IDfeatures are in your list of features to be decoded!- Parameters:
aFeaturesToBeDecoded- A list of features that should be decoded into the VFR route model objects.
-
setOffsetRouteFeaturesToBeDecoded
Specifies the offset route features to be decoded into the model objects. Please make sure that theAIRPORT_IDandROUTE_IDfeatures are in your list of features to be decoded!- Parameters:
aFeaturesToBeDecoded- A list of features that should be decoded into the offset route model objects.
-
isAddAerodromes
public boolean isAddAerodromes()Returns a boolean indicating whether the submodel of aerodromes will be added or not. If the addAerodromes property istrue, an extra submodel will be created. This model will contain the aerodromes for which a VFR route serves. The aerodromes in the model are retrieved from the aerodrome and the heliport model decoded by this decoder using the source directory to be decoded.- Returns:
- whether the submodel of aerodromes will be added or not.
- See Also:
-
setAddAerodromes
public void setAddAerodromes(boolean aValue) Specifies whether a submodel of aerodromes should be added.- Parameters:
aValue- A flag indicating if a submodel of aerodromes should be added.- See Also:
-
getUniqueKeyFeatureNames
Returns for the given submodel the array ofStringobjects containing the names of the features that will be used as a unique key to insert objects into the submodel.- Parameters:
aIndex- The index of the submodel whose unique key feature names are being retrieved.- Returns:
- for the given submodel the unique key feature names.
-
canDecodeSource
Returnstrueif the specified source is:- A file with the specific name corresponding to the object type of this decoder
- A directory containing such a file
- A
.tocfile in a directory, pointing to such a file
- Parameters:
aSource- the name of the source file or directory that you want to decode- Returns:
- a boolean indicating whether the given source can be decoded
-
getDomainFactory
Deprecated.Returns the factory that is used to create domain objects.- Returns:
- the factory that is used to create domain objects.
- See Also:
-
setDomainFactory
Deprecated.Specifies the domain factory. The domain factory will be used to create the domain objects decoded by this DAFIFT decoder.- Parameters:
aDomainFactory- The factory that will be used to create domain objects.- See Also:
-
getDataObjectFactory
Returns the factory that is used to create domain objects.- Returns:
- the factory that is used to create domain objects.
- See Also:
-
setDataObjectFactory
Specifies the data factory. The data factory will be used to create the domain objects decoded by this DAFIFT decoder. Decoders equipped with a data object factory that is notnull, will NOT use their associated domain factory (seegetDomainFactory()).- Parameters:
aFactory- The factory that will be used to create domain objects.- See Also:
-
getInputStreamFactory
Returns the input stream factory that is currently used for creating the input streams for the given source names.- Specified by:
getInputStreamFactoryin interfaceILcdInputStreamFactoryCapable- Returns:
- the input stream factory that is currently used.
- See Also:
-
setInputStreamFactory
Sets the input stream factory that will be used for creating the input streams for the given source names.- Specified by:
setInputStreamFactoryin interfaceILcdInputStreamFactoryCapable- Parameters:
aInputStreamFactory- The input stream factory to be used.- See Also:
-
getRecordFilter
Returns the record filter that is currently used.- Returns:
- the record filter that is currently used.
- See Also:
-
setRecordFilter
Specifies a filter to be used while creating the model. Only records that pass through this filter will be decoded into model objects.- Parameters:
aRecordFilter- The record filter that should be passed before a record can be decoded.- See Also:
-
getMaxNumberOfErrorReports
public int getMaxNumberOfErrorReports()Returns the number of error reports to be added to the error message. If there are more errors than the maxNumberOfErrorReports property, they won't be stored and you won't be able to see these errors in the error message after the decoding process.- Returns:
- the number of error reports to be added to the error message.
- See Also:
-
setMaxNumberOfErrorReports
public void setMaxNumberOfErrorReports(int aMaxNumberOfErrorReports) Specifies a value for the maximum number of error reports. If a negative value is set, all reported errors will be added to the error message.- Parameters:
aMaxNumberOfErrorReports- The maximum number of error reports to be added to the error message.- See Also:
-
getErrorMessage
Returns the error message of the last decode call. Note that the error message can only be retrieved once after a decode call.- Returns:
- a
Stringobject containing the errors occurred during the last decode process.
-
getDataObjectFactory()