public abstract class ALcdDAFIFSingleModelDecoder extends ALcdDAFIFDecoder
ALcdDAFIFDecoder
class defines
the skeleton of the decode algorithm used to decode DAFIF data files.
The decode method will loop through all records in the source file.
A concrete decoder can decide on what to do with each record by implementing the
handleRecord
method.
Extensions of the ALcdDAFIFSingleModelDecoder
class will decode
so-called "single" model. Such a model has no submodels, as opposed to
the "multi" model.
DAFIF_PROP_EXTENSION, fRecordCount
Constructor and Description |
---|
ALcdDAFIFSingleModelDecoder(Properties aDAFIFProperties)
Initializes the DAFIFProperties field with the
specified properties object.
|
Modifier and Type | Method and Description |
---|---|
protected void |
cleanUp()
This method should be implemented by a concrete class.
|
protected abstract ILcdModelDescriptor |
createModelDescriptor(String aSource)
Creates and returns the model descriptor to be set on the model returned in the
decode method. |
ILcdModel |
decode(String aSource)
Returns a model containing domain objects read from the given source file.
|
protected abstract void |
handleRecord(int aFormat,
char[] aRecord)
Deals with one record of input.
|
void |
setKeyFeatureNames(String[] aKeyFeatureNames)
Specifies an
Array object containing the names of the features
that will be used as a key to insert objects into the model. |
addErrorReport, canDecodeSource, getAltitudeType, getBearingTypeForChar, getBounds, getDAFIFProperties, getDataObjectFactory, getDecodingBounds, getDisplayName, getDomainFactory, getErrorMessage, getInputStream, getInputStreamFactory, getLocalHorizontalDatum, getModelFilter, getRecordCount, initializeErrorMessage, isStoreOriginalReference, isTraceOn, loadCFGProperties, read, readExactValue, readFormat, readMinLength, readRecord, setBounds, setDAFIFModelFilter, setDAFIFProperties, setDataObjectFactory, setDecodingBounds, setDomainFactory, setInputStreamFactory, setStoreOriginalReference, setTraceOn, transformPointToReferenceDatumSFCT
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getDecodeFileName
canDecodeSource, decodeModelMetadata, decodeModelMetadata, decodeSource, discoverDataSources
public ALcdDAFIFSingleModelDecoder(Properties aDAFIFProperties)
If you don't have a properties object here, you can still specify it by decoding a .toc file containing the DAFIF properties. The decoder will read the properties from the .toc file and look for the data file to be decoded in the directory containing this .toc file.
aDAFIFProperties
- a Properties
object containing for each domain
object the name of its data file or NULLpublic ILcdModel decode(String aSource) throws IOException
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.
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()
).IOException
- if an error occurs during the reading processILcdModelDecoder.canDecodeSource(String)
protected void cleanUp()
ALcdDAFIFDecoder
It should empty all temporary data structures used during the decoding process.
cleanUp
in class ALcdDAFIFDecoder
protected abstract void handleRecord(int aFormat, char[] aRecord)
aFormat
- the format of the recordaRecord
- the recordprotected abstract ILcdModelDescriptor createModelDescriptor(String aSource)
decode
method.aSource
- the source that will be used to decodepublic void setKeyFeatureNames(String[] aKeyFeatureNames)
Array
object containing the names of the features
that will be used as a key to insert objects into the model.
Please retrieve these feature names from the feature interfaces corresponding with the domain objects (e.g. com.luciad.ais.model.aerodrome.ILcdAerodromeFeature).
aKeyFeatureNames
- an Array
object containing the names of the features
that will be used as a key to insert objects into the model