DocumentReader is a class for reading the contents of a file into a given document.
Derive a sub-class for each combination of file format and set of features (typically represented by a particular type of document). The only method that requires overriding is the initialize(). See the method comments for initialize() for more details.
Example: Suppose class MyDocument has three features: Models, Materials, and Material assignments, and we want to read an XML file that contains that data for these features. The readers for these features take the root XMLSaxData as the source, and appear as follows:
class XMLModelReader( FeatureReader ): def read( self, xmlRootData, document ): ...
class XMLMaterialReader( FeatureReader ): def read( self, xmlRootData, document ): ...
class XMLMaterialAssignmentReader( FeatureReader ): def read( self, xmlRootData, document ): ...
The document reader would be as follows:
class XMLMyDocumentReader( DocumentReader ): def initialize( self ): # Register the feature readers for the features that that this # document reader will read. # import ModelFeature import MaterialFeature import MaterialAsssignmentFeature
self.register( ModelFeature.id, XMLModelReader ) self.register( MaterialFeature.id, XMLMaterialReader ) self.register( MaterialAsssignmentFeature.id, XMLMaterialAssignmentReader )
# Parse the XML file using the XMLSaxReader and set the XMLSaxData # object as the source. # try: xmlRootData = XMLSaxReader.parse( self.getFilename() ) self.setSource( xmlRootData ) return DocumentReader.initialize( self ) except: return False
One would use this reader as follows:
document = MyDocument() reader = XMLMyDocumentReader( document, 'some_file.xml' ) reader.read( )
#include
<class_document_reader_1_1_document_reader.h>
Public Member Functions |
|
__init__ () | |
setStageId () | |
getStageId () | |
setNamespaceId () | |
getNamespaceId () | |
getFilename () | |
Returns the filename corresponding to the
file to be read. |
|
initialize () | |
Override this in any derived class. |
|
readSource () | |
read () | |
Reads the file contents, for the features
that have registered readers, into the given document. |
|
getSource () | |
Returns the source from which the data will
be read. |
|
setSource () | |
Sets the source from which the data will be
read. |
|
setVersion () | |
getVersion () | |
setUsage () | |
getUsage () | |
getFeatureReader () | |
Given a feature id, returns the registered
reader for the corresponding feature; None if no readers was
registered. |
|
register () | |
Registers the given FeatureReader class for the
feature identified by the given id. |
|
setSearchPaths () | |
Given a feature id, sets the search paths to
be used by its corresponding FeatureReader. |
|
setUnitConversionMultiplier () | |
See FeatureReader method for
details. |
DocumentReader.DocumentReader.__init__ | ( | ) |
DocumentReader.DocumentReader.setStageId | ( | ) |
DocumentReader.DocumentReader.getStageId | ( | ) |
DocumentReader.DocumentReader.setNamespaceId | ( | ) |
DocumentReader.DocumentReader.getNamespaceId | ( | ) |
DocumentReader.DocumentReader.getFilename | ( | ) |
Returns the filename corresponding to the file to be read.
DocumentReader.DocumentReader.initialize | ( | ) |
Override this in any derived class.
Tasks that should be performed here include:
At the end of the derived initialize() implementation, this base class method must be called.
Reimplemented in XMLDocumentReader.XMLDocumentReader.
DocumentReader.DocumentReader.readSource | ( | ) |
DocumentReader.DocumentReader.read | ( | ) |
Reads the file contents, for the features that have registered readers, into the given document.
DocumentReader.DocumentReader.getSource | ( | ) |
Returns the source from which the data will be read.
DocumentReader.DocumentReader.setSource | ( | ) |
Sets the source from which the data will be read.
Classes derived from this one should call this method with the type of data best suited for reading the given document.
DocumentReader.DocumentReader.setVersion | ( | ) |
DocumentReader.DocumentReader.getVersion | ( | ) |
DocumentReader.DocumentReader.setUsage | ( | ) |
DocumentReader.DocumentReader.getUsage | ( | ) |
DocumentReader.DocumentReader.getFeatureReader | ( | ) |
Given a feature id, returns the registered reader for the corresponding feature; None if no readers was registered.
DocumentReader.DocumentReader.register | ( | ) |
Registers the given FeatureReader class for the feature identified by the given id.
DocumentReader.DocumentReader.setSearchPaths | ( | ) |
Given a feature id, sets the search paths to be used by its corresponding FeatureReader.
Returns True if set successfully; False otherwise.
DocumentReader.DocumentReader.setUnitConversionMultiplier | ( | ) |
See FeatureReader method for details.