Class TLcdDAFIFRunwayDecoder

All Implemented Interfaces:
ILcdDAFIFDecoder, ILcdInputStreamFactoryCapable, ILcdModelDecoder
Direct Known Subclasses:
TLcdDAFIFIndependentRunwayDecoder

public class TLcdDAFIFRunwayDecoder extends ALcdDAFIFSingleModelDecoder
This extension of the ALcdDAFIFSingleModelDecoder decodes runways from a DAFIF source file. 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 TLcdDAFIFDataTypes.Runway, which can also be retrieved through ILcdDataObject.getDataType(). The available properties of the objects are defined in TLcdDAFIFRunwayDataProperties. The values for these properties can be retrieved through ILcdDataObject.getValue(com.luciad.datamodel.TLcdDataProperty).

  • Constructor Details

    • TLcdDAFIFRunwayDecoder

      @Deprecated public TLcdDAFIFRunwayDecoder(ALcdAISObjectFactory aFactory)
      Deprecated.
      Constructs a new TLcdDAFIFRunwayDecoder object. The user should specify which domainFactory he or she wants to use to create the runways.
      Parameters:
      aFactory - the factory to be used to create the model objects
    • TLcdDAFIFRunwayDecoder

      public TLcdDAFIFRunwayDecoder(TLcdAISDataObjectFactory aFactory)
      Constructs a new TLcdDAFIFRunwayDecoder object. The user should specify which factory he or she wants to use to create the runways.
      Parameters:
      aFactory - the factory to be used to create the model objects
    • TLcdDAFIFRunwayDecoder

      public TLcdDAFIFRunwayDecoder(TLcdAISDataObjectFactory aFactory, Properties aDAFIFProperties)
      Constructs a new TLcdDAFIFRunwayDecoder object. The user should specify which domainFactory he or she wants to use to create the runways.
      Parameters:
      aFactory - the factory to be used to create the model objects
      aDAFIFProperties - a Properties object that contains for each domain object the appropriate file name
    • TLcdDAFIFRunwayDecoder

      @Deprecated public TLcdDAFIFRunwayDecoder(ALcdAISObjectFactory aFactory, Properties aDAFIFProperties)
      Deprecated.
      Constructs a new TLcdDAFIFRunwayDecoder object. The user should specify which domainFactory he or she wants to use to create the runways.
      Parameters:
      aFactory - the factory to be used to create the model objects
      aDAFIFProperties - a Properties object that contains for each domain object the appropriate file name
  • Method Details

    • getDecodeFileName

      public String getDecodeFileName()
      Description copied from interface: ILcdDAFIFDecoder
      Returns the name of the file to be decoded.

      Each domain object has its own file name. This method returns the name of the data file for the domain objects decoded by this DAFIF decoder.

      Returns:
      the name of the source file
    • getDisplayName

      public String getDisplayName()
      Description copied from interface: ILcdModelDecoder
      Returns a short, displayable name for the format that is decoded by this ILcdModelDecoder.
      Specified by:
      getDisplayName in interface ILcdModelDecoder
      Overrides:
      getDisplayName in class ALcdDAFIFDecoder
      Returns:
      the displayable name of this ILcdModelDecoder.
    • handleRecord

      protected final void handleRecord(int aFormat, char[] aRecord)
      Description copied from class: ALcdDAFIFSingleModelDecoder
      Deals with one record of input.
      Specified by:
      handleRecord in class ALcdDAFIFSingleModelDecoder
      Parameters:
      aFormat - the format of the record
      aRecord - the record
    • decode

      public ILcdModel decode(String aSource) throws IOException
      Description copied from class: ALcdDAFIFSingleModelDecoder
      Returns a model containing 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 will be manipulated by the abstract handleRecord method.

      Furthermore, the error message will be initialized and filled with reports about errors occurred during the decode proces.

      Specified by:
      decode in interface ILcdModelDecoder
      Overrides:
      decode in class ALcdDAFIFSingleModelDecoder
      Parameters:
      aSource - either the directory containing the DAFIF source file to decode (if you did not specify a properties file in the constructor, the default file name will be used), a .toc file containing the DAFIF properties (the data file should be in the same directory as the .toc file) or a single file which name corresponds to the file name associated with this decoder (see getDecodeFileName()).
      Returns:
      the model build by reading the file found with aSource
      Throws:
      IOException - if an error occurs during the reading process
      See Also:
    • createModelDescriptor

      protected ILcdModelDescriptor createModelDescriptor(String aSource)
      Description copied from class: ALcdDAFIFSingleModelDecoder
      Creates and returns the model descriptor to be set on the model returned in the decode method.
      Specified by:
      createModelDescriptor in class ALcdDAFIFSingleModelDecoder
      Parameters:
      aSource - the source that will be used to decode
      Returns:
      a model descriptor describing the data in the model created in the decode method
    • setRunwayDefaultDisplayNameIndex

      public void setRunwayDefaultDisplayNameIndex(int aIndex)
      Specifies the index of the feature to be used as display name.
      Parameters:
      aIndex - the index of the feature to be used as display name
    • setRunwayDirectionDefaultDisplayNameIndex

      public void setRunwayDirectionDefaultDisplayNameIndex(int aIndex)
      Specifies the index of the feature to be used as display name.
      Parameters:
      aIndex - the index of the feature to be used as display name
    • setAerodromeModel

      public void setAerodromeModel(ILcdFeatureIndexedModel aAirportsModel)
      Specifies an aerodrome model. Make sure there is a unique index on this model!
      Parameters:
      aAirportsModel -
      See Also:
    • createRequiredIndex

      public void createRequiredIndex(ILcdFeatureIndexedAnd2DBoundsIndexedModel aModel)
      Adds a unique index on specified model of aerodromes. This method should be called before calling setAerodromeModel method.

      Please make sure that the ILcdAerodromeFeature.IDENTIFICATION feature was decoded into the model objects of the specified aerodrome model.

      Parameters:
      aModel - a model containing the aerodromes
      See Also:
    • isDecodeArrestingGear

      public static boolean isDecodeArrestingGear()
      Returns a boolean indicating whether the arresting gear model will be decoded or not.
      See Also:
    • setDecodeArrestingGear

      public static void setDecodeArrestingGear(boolean aDecodeArrestingGear)
      Specify whether the arresting gear model should be added or not while decoding the runways.
      Parameters:
      aDecodeArrestingGear - Whether the arresting gear should be decoded.
      See Also:
    • setRunwayFeaturesToBeDecoded

      public void setRunwayFeaturesToBeDecoded(String[] aRunwayFeaturesToBeDecoded)
      Specifies the features that should be decoded into the runway objects of the model that will be returned by the decode method.

      Please make sure that the ILcdDAFIFRunwayFeature.AERODROME_IDENTIFICATION, the ILcdDAFIFRunwayFeature.HIGH_END_IDENTIFIER and the ILcdDAFIFRunwayFeature.LOW_END_IDENTIFIER features are in your list.

      Parameters:
      aRunwayFeaturesToBeDecoded - a list of features that should be decoded into the runway objects
    • setRunwayDirectionFeaturesToBeDecoded

      public void setRunwayDirectionFeaturesToBeDecoded(String[] aRunwayDirectionFeaturesToBeDecoded)
      Specifies the features that should be decoded into the runway direction objects of the model that will be returned by the decode method.

      Please make sure that the ILcdRunwayDirectionFeature.IDENTIFIER feature is in your list.

      Parameters:
      aRunwayDirectionFeaturesToBeDecoded - a list of features that should be decoded into the runway direction objects
    • setArrestingGearFeaturesToBeDecoded

      public void setArrestingGearFeaturesToBeDecoded(String[] aArrestingGearFeaturesToBeDecoded)
      Specifies the features that should be decoded into the arresting gear objects of the model that will be returned by the decode method.
      Parameters:
      aArrestingGearFeaturesToBeDecoded - a list of features that should be decoded into the arresting gear objects
    • readHighEndLon

      protected double readHighEndLon(char[] aRecord)
      Reads the high end longitude. The resulting value may be a geodetic or a source longitude depending on the value of isGeodetic.
    • readHighEndLat

      protected double readHighEndLat(char[] aRecord)
      Reads the high end latitude. The resulting value may be a geodetic or a source latitude depending on the value of isGeodetic.
      Parameters:
      aRecord -
    • readLowEndLon

      protected double readLowEndLon(char[] aRecord)
      Reads the low end longitude. The resulting value may be a geodetic or a source longitude depending on the value of isGeodetic.
    • readLowEndLat

      protected double readLowEndLat(char[] aRecord)
      Reads the low end latitude. The resulting value may be a geodetic or a source latitude depending on the value of isGeodetic.
    • readLocalHorizontalDatumFromFmt1

      protected ILcdGeodeticDatum readLocalHorizontalDatumFromFmt1(char[] aRecord)
      Reads the local horizontal datum from a record of format 01. This field must not be empty.