public class TLcdDAFIFTRunwayDecoder extends ALcdDAFIFTModelDecoder
ILcdModelDecoder
that decodes DAFIFT runway objects from the
specified source directory. The decoded models have as model descriptor an instance of
TLcdDAFIFRunwayModelDescriptor
.
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 decoder, the type of the decoded objects is TLcdDAFIFTDataTypes.Runway
,
which can also be retrieved through ILcdDataObject.getDataType()
.
The available properties of the objects are defined in TLcdDAFIFTRunwayDataProperties
.
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.
setRunwayFeaturesToBeDecoded
and setRunwayDirectionFeaturesToBeDecoded
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 the runway and runway direction objects:
ILcdDAFIFRunwayFeature.AERODROME_IDENTIFICATION
ILcdDAFIFRunwayFeature.HIGH_END_IDENTIFIER
,
ILcdRunwayDirectionFeature.IDENTIFIER
ILcdDAFIFRunwayFeature.LOW_END_IDENTIFIER
,
ILcdRunwayDirectionFeature.IDENTIFIER
ILcdRunwayFeature.LENGTH
,
ILcdRunwayFeature.LENGTH_UNIT
ILcdRunwayFeature.WIDTH
,
ILcdRunwayFeature.WIDTH_UNIT
ILcdRunwayFeature.SURFACE_TYPE
ILcdDAFIFRunwayFeature.PAVEMENT_CLASSIFICATION_NUMBER
ILcdDAFIFRunwayDirectionFeature.SLOPE
ILcdDAFIFRunwayDirectionFeature.TOUCHDOWN_ZONE_ELEVATION
,
ILcdDAFIFRunwayDirectionFeature.TOUCHDOWN_ZONE_ELEVATION_UNIT
ILcdDAFIFRunwayDirectionFeature.THRESHOLD_ELEVATION
,
ILcdDAFIFRunwayDirectionFeature.THRESHOLD_ELEVATION_UNIT
ILcdRunwayDirectionFeature.MAGNETIC_HEADING
ILcdDAFIFRunwayFeature.CLOSED
ILcdDAFIFRunwayDirectionFeature.LANDING_DISTANCE_AVAILABLE
,
ILcdDAFIFRunwayDirectionFeature.LANDING_DISTANCE_AVAILABLE_UNIT
ILcdDAFIFRunwayDirectionFeature.TAKEOFF_DISTANCE_AVAILABLE
,
ILcdDAFIFRunwayDirectionFeature.TAKEOFF_DISTANCE_AVAILABLE_UNIT
ILcdDAFIFRunwayFeature.CYCLE_DATE
ILcdDAFIFArrestingGearFeature.AERODROME_IDENTIFICATION
ILcdDAFIFArrestingGearFeature.RUNWAY_IDENTIFIER
ILcdDAFIFArrestingGearFeature.ENERGY_ABSORBING_DEVICE_CODE
,
ILcdDAFIFArrestingGearFeature.ENGAGING_DEVICE_CODE
ILcdDAFIFArrestingGearFeature.ICAO_CODE
TLcdDAFIFTRunwayDecoder
does not decode the
aerodromes necessary to produce a runway model. An aerodrome model should be specified by using
the setAerodromeModel
method. A unique index containing the ILcdAerodromeFeature.IDENTIFICATION
feature is added on this aerodrome model. The feature
should have been decoded into the featured model objects of the aerodrome model.ILcdDAFIFRunwayFeature
,
TLcdDAFIFRunwayModelDescriptor
,
ILcdDAFIFArrestingGearFeature
Constructor and Description |
---|
TLcdDAFIFTRunwayDecoder(ALcdAISObjectFactory aDomainFactory)
Deprecated.
|
TLcdDAFIFTRunwayDecoder(TLcdAISDataObjectFactory aFactory)
Constructs a new
TLcdDAFIFTRunwayDecoder object. |
Modifier and Type | Method and Description |
---|---|
boolean |
canDecodeSource(String aSource)
Returns
true if 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 .toc file in a directory, pointing to such a file
|
ILcdModel |
decode(String aSource)
Checks whether a aerodrome model is set before starting the decode process.
|
TLcdAISDataObjectFactory |
getDataObjectFactory()
Returns the factory that is used to create domain objects.
|
String |
getDisplayName()
Returns a short, displayable name for the format that is decoded by this
ILcdModelDecoder . |
ALcdAISObjectFactory |
getDomainFactory()
Deprecated.
|
String |
getErrorMessage()
Returns the error message of the last decode call.
|
ILcdInputStreamFactory |
getInputStreamFactory()
Returns the input stream factory that is currently used for creating
the input streams for the given source names.
|
int |
getMaxNumberOfErrorReports()
Returns the number of error reports to be added to the error message.
|
ILcdDAFIFTRecordFilter |
getRecordFilter()
Returns the record filter that is currently used.
|
String[] |
getUniqueKeyFeatureNames()
Returns the array of
String objects containing the names of the features
that will be used as a unique key to insert objects into the model. |
boolean |
isDecodeArrestingGear()
Returns a boolean indicating whether the arresting gear model will be decoded or not.
|
void |
setAerodromeModel(ILcdFeatureIndexedModel aAerodromeModel)
Specifies the model containing the aerodrome objects this decoder should use.
|
void |
setDataObjectFactory(TLcdAISDataObjectFactory aFactory)
Specifies the data factory.
|
void |
setDecodeArrestingGear(boolean aDecodeArrestingGear)
Specify whether the arresting gear model should be added or not while decoding the runways.
|
void |
setDomainFactory(ALcdAISObjectFactory aDomainFactory)
Deprecated.
|
void |
setInputStreamFactory(ILcdInputStreamFactory aInputStreamFactory)
Sets the input stream factory that will be used for creating the
input streams for the given source names.
|
void |
setMaxNumberOfErrorReports(int aMaxNumberOfErrorReports)
Specifies a value for the maximum number of error reports.
|
void |
setRecordFilter(ILcdDAFIFTRecordFilter aRecordFilter)
Specifies a filter to be used while creating the model.
|
void |
setRunwayDefaultDisplayNameIndex(int aIndex)
Specifies the index of the feature to be the runway display name.
|
void |
setRunwayDirectionDefaultDisplayNameIndex(int aIndex)
Specifies the index of the feature to be the runway direction display name.
|
void |
setRunwayDirectionFeaturesToBeDecoded(String[] aFeaturesToBeDecoded)
Specifies the runway direction features to be decoded into the model objects.
|
void |
setRunwayFeaturesToBeDecoded(String[] aFeaturesToBeDecoded)
Specifies the runway features to be decoded into the model objects.
|
getDecodingBounds, getModelFilter, setDecodingBounds, setModelFilter
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
canDecodeSource, canDecodeSource, decodeModelMetadata, decodeModelMetadata, decodeSource, discoverDataSources
@Deprecated public TLcdDAFIFTRunwayDecoder(ALcdAISObjectFactory aDomainFactory)
TLcdDAFIFTRunwayDecoder
object. The user should specify which
aDomainFactory he or she wants to use to create the runways.aDomainFactory
- The factory to be used to create the model objects.public TLcdDAFIFTRunwayDecoder(TLcdAISDataObjectFactory aFactory)
TLcdDAFIFTRunwayDecoder
object. The user should specify which
factory he or she wants to use to create the runways.aFactory
- The factory to be used to create the model objects.public String getDisplayName()
ILcdModelDecoder
ILcdModelDecoder
.getDisplayName
in interface ILcdModelDecoder
getDisplayName
in class ALcdDAFIFTModelDecoder
ILcdModelDecoder
.public ILcdModel decode(String aSource) throws IOException
IllegalStateException
object will be thrown.
Returns a model containing the domain objects read from the given source file.
The model 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 filter getModelFilter()
and a bounds filter getDecodingBounds()
) 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
method setMaxNumberOfErrorReports(int)
can be used to adjust this setting.decode
in interface ILcdModelDecoder
aSource
- Either the directory containing the DAFIFT source file to decode
or the DAFIFT source file itself.IOException
- if an error occurs during the reading process.IllegalStateException
- if no aerodrome model has been specified.ILcdModelDecoder.canDecodeSource(String)
public void setRunwayDefaultDisplayNameIndex(int aIndex)
aIndex
- The index of the feature to be the runway display name.public void setRunwayDirectionDefaultDisplayNameIndex(int aIndex)
aIndex
- The index of the feature to be the runway direction display name.public void setRunwayFeaturesToBeDecoded(String[] aFeaturesToBeDecoded)
AERODROME_IDENTIFICATION
, HIGH_END_IDENTIFIER
and LOW_END_IDENTIFIER
features are in your list of features to be decoded!aFeaturesToBeDecoded
- A list of features that should be decoded into the runway model objects.public void setRunwayDirectionFeaturesToBeDecoded(String[] aFeaturesToBeDecoded)
IDENTIFIER
feature is in your list.aFeaturesToBeDecoded
- A list of features that should be decoded into the runway direction objects.public void setAerodromeModel(ILcdFeatureIndexedModel aAerodromeModel)
aAerodromeModel
- A model containing aerodrome objects.public boolean isDecodeArrestingGear()
setDecodeArrestingGear(boolean)
public void setDecodeArrestingGear(boolean aDecodeArrestingGear)
aDecodeArrestingGear
- A flag indicating if the arresting gear should be decoded.isDecodeArrestingGear()
public String[] getUniqueKeyFeatureNames()
String
objects containing the names of the features
that will be used as a unique key to insert objects into the model.String
objects containing the names of the features
that will be used as a unique key to insert objects into the model.public boolean canDecodeSource(String aSource)
true
if the specified source is:
.toc
file in a directory, pointing to such a fileaSource
- the name of the source file or directory that you want to decode@Deprecated public ALcdAISObjectFactory getDomainFactory()
getDataObjectFactory()
setDomainFactory(ALcdAISObjectFactory)
@Deprecated public void setDomainFactory(ALcdAISObjectFactory aDomainFactory)
setDataObjectFactory(TLcdAISDataObjectFactory)
aDomainFactory
- The factory that will be used to create domain objects.getDomainFactory()
public TLcdAISDataObjectFactory getDataObjectFactory()
setDomainFactory(ALcdAISObjectFactory)
public void setDataObjectFactory(TLcdAISDataObjectFactory aFactory)
null
, will
NOT use their associated domain factory (see getDomainFactory()
).aFactory
- The factory that will be used to create domain objects.getDomainFactory()
public ILcdInputStreamFactory getInputStreamFactory()
getInputStreamFactory
in interface ILcdInputStreamFactoryCapable
setInputStreamFactory(ILcdInputStreamFactory)
public void setInputStreamFactory(ILcdInputStreamFactory aInputStreamFactory)
setInputStreamFactory
in interface ILcdInputStreamFactoryCapable
aInputStreamFactory
- The input stream factory to be used.getInputStreamFactory()
public ILcdDAFIFTRecordFilter getRecordFilter()
setRecordFilter(ILcdDAFIFTRecordFilter)
public void setRecordFilter(ILcdDAFIFTRecordFilter aRecordFilter)
aRecordFilter
- The record filter that should be passed before a record
can be decoded.getRecordFilter()
public int getMaxNumberOfErrorReports()
setMaxNumberOfErrorReports(int)
public void setMaxNumberOfErrorReports(int aMaxNumberOfErrorReports)
aMaxNumberOfErrorReports
- The maximum number of error reports to be added to the error message.getMaxNumberOfErrorReports()
public String getErrorMessage()
String
object containing the errors occurred during
the last decode process.