Class TLcdDAFIFHoldingDecoder

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

public class TLcdDAFIFHoldingDecoder extends ALcdDAFIFSingleModelDecoder
This extension of the ALcdDAFIFSingleModelDecoder decodes holdings from a DAFIF source file. Decoded models have as model descriptor an instance of TLcdDAFIFHoldingModelDescriptor.

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.Holding, which can also be retrieved through ILcdDataObject.getDataType(). The available properties of the objects are defined in TLcdDAFIFHoldingDataProperties. The values for these properties can be retrieved through ILcdDataObject.getValue(com.luciad.datamodel.TLcdDataProperty).

  • Constructor Details

    • TLcdDAFIFHoldingDecoder

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

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

      @Deprecated public TLcdDAFIFHoldingDecoder(ALcdAISObjectFactory aDomainFactory, Properties aDAFIFProperties)
      Deprecated.
      Constructs a new TLcdDAFIFHoldingDecoder object.
      Parameters:
      aDomainFactory - the factory to be used to create the holdings
      aDAFIFProperties - a Properties object that contains for each domain object the appropriate file name
    • TLcdDAFIFHoldingDecoder

      public TLcdDAFIFHoldingDecoder(TLcdAISDataObjectFactory aFactory, Properties aDAFIFProperties)
      Constructs a new TLcdDAFIFHoldingDecoder object.
      Parameters:
      aFactory - the factory to be used to create the holdings
      aDAFIFProperties - a Properties object that contains for each domain object the appropriate file name
  • Method Details

    • decode

      public ILcdModel decode(String aSource) throws IOException
      Calls the decode method of ALcdDAFIFSingleModelDecoder.

      Checks whether a waypoint model is set before starting the decode process. If no waypoint model is specified, an IllegalStateException object will be thrown.

      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) or a .toc file containing the DAFIF properties (the data file should be in the same directory as the .toc file)
      Returns:
      the model build by reading the file found with aSource
      Throws:
      IOException - if an error occurs during the reading process
      See Also:
    • 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
    • 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
    • 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.
    • createModelBuilderSupport

      protected com.luciad.format.dafif.decoder.ILcdModelBuilderSupport createModelBuilderSupport()
    • setHoldingDefaultDisplayNameIndex

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

      public void setWaypointsModel(ILcdFeatureIndexedAnd2DBoundsIndexedModel aWaypointsModel)
      Specifies a waypoint model.

      Please make sure there 's a unique index on this model!

      Parameters:
      aWaypointsModel - the waypoint model to be used to create the holding patterns
      See Also:
    • createRequiredIndex

      public void createRequiredIndex(ILcdFeatureIndexedAnd2DBoundsIndexedModel aModel)
      Adds a unique index on specified model of waypoints.

      This method should be called before calling setWaypointsModel method.

      Please make sure that the following features were decoded into the model objects of the specified waypoint model:

      • ILcdWayPointFeature.IDENTIFIER,
      • ILcdDAFIFWayPointFeature.COUNTRY_CODE.
      If the features mentioned above weren't decoded into the waypoints, this method will cause exceptions to be thrown!
      Parameters:
      aModel - a model containing waypoints
      See Also:
    • setHoldingFeaturesToBeDecoded

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

      Please make sure that the ILcdDAFIFHoldingFeature.WAYPOINT_IDENTIFIER and ILcdDAFIFHoldingFeature.WAYPOINT_COUNTRY_CODE features are in your list.

      Parameters:
      aHoldingFeaturesToBeDecoded - a list of features that should be decoded into the holding objects