org.jfree.xml.util

Class AbstractModelReader

public abstract class AbstractModelReader extends Object

Loads the class model from an previously written xml file set. This class provides abstract methods which get called during the parsing (similiar to the SAX parsing, but slightly easier to code). This will need a rewrite in the future, when the structure is finished.
Constructor Summary
AbstractModelReader()
Default Constructor.
Method Summary
protected voidendIncludeHandling()
End handling an include.
protected abstract voidendMultiplexMapping()
Finializes the multiplexer mapping.
protected abstract voidendObjectDefinition()
Finializes the object definition.
protected voidendRootDocument()
End the root document.
protected String[]getCloseComment()
Returns the close comment.
protected CommentHandlergetCommentHandler()
Returns the comment handler.
protected String[]getOpenComment()
Returns the open comment.
protected abstract voidhandleAttributeDefinition(String name, String attribName, String handlerClass)
Handles an attribute definition.
protected abstract voidhandleConstructorDefinition(String propertyName, String parameterClass)
Handles a constructor definition.
protected abstract voidhandleElementDefinition(String name, String element)
Handles an element definition.
protected voidhandleIgnoredProperty(String name)
Callback method for ignored properties.
protected abstract voidhandleLookupDefinition(String name, String lookupKey)
Handles an lookup definition.
protected abstract booleanhandleManualMapping(String className, String readHandler, String writeHandler)
Handles a manual mapping definition.
protected abstract voidhandleMultiplexMapping(String typeName, String className)
Defines an entry for the multiplex mapping.
protected ClassloadClass(String className)
Loads the given class, and ignores all exceptions which may occur during the loading.
protected voidparseXml(URL resource)
Parses an XML document at the given URL.
protected voidparseXmlDocument(URL resource, boolean isInclude)
Parses the given specification and loads all includes specified in the files.
protected voidsetCloseComment(String[] closeComment)
Sets the close comment.
protected voidsetOpenComment(String[] openComment)
Sets the open comment.
protected voidstartIncludeHandling(URL resource)
Start handling an include.
protected abstract voidstartMultiplexMapping(String className, String typeAttr)
Starts a multiplex mapping.
protected abstract booleanstartObjectDefinition(String className, String register, boolean ignored)
Starts a object definition.
protected voidstartRootDocument()
Start the root document.

Constructor Detail

AbstractModelReader

public AbstractModelReader()
Default Constructor.

Method Detail

endIncludeHandling

protected void endIncludeHandling()
End handling an include.

endMultiplexMapping

protected abstract void endMultiplexMapping()
Finializes the multiplexer mapping.

Throws: ObjectDescriptionException if an error occurs.

endObjectDefinition

protected abstract void endObjectDefinition()
Finializes the object definition.

Throws: ObjectDescriptionException if an error occures.

endRootDocument

protected void endRootDocument()
End the root document.

getCloseComment

protected String[] getCloseComment()
Returns the close comment.

Returns: The close comment.

getCommentHandler

protected CommentHandler getCommentHandler()
Returns the comment handler.

Returns: The comment handler.

getOpenComment

protected String[] getOpenComment()
Returns the open comment.

Returns: The open comment.

handleAttributeDefinition

protected abstract void handleAttributeDefinition(String name, String attribName, String handlerClass)
Handles an attribute definition. This method gets called after the object definition was started. The method will be called for every defined attribute property.

Parameters: name the name of the property attribName the xml-attribute name to use later. handlerClass the attribute handler class.

Throws: ObjectDescriptionException if an error occured.

handleConstructorDefinition

protected abstract void handleConstructorDefinition(String propertyName, String parameterClass)
Handles a constructor definition. Only one constructor can be defined for a certain object type. The constructor will be filled using the given properties.

Parameters: propertyName the property name of the referenced local property parameterClass the parameter class for the parameter.

Throws: ObjectDescriptionException if an error occured.

handleElementDefinition

protected abstract void handleElementDefinition(String name, String element)
Handles an element definition. This method gets called after the object definition was started. The method will be called for every defined element property. Element properties are used to describe complex objects.

Parameters: name the name of the property element the xml-tag name for the child element.

Throws: ObjectDescriptionException if an error occurs.

handleIgnoredProperty

protected void handleIgnoredProperty(String name)
Callback method for ignored properties. Such properties get marked so that the information regarding these properties won't get lost.

Parameters: name the name of the ignored property.

handleLookupDefinition

protected abstract void handleLookupDefinition(String name, String lookupKey)
Handles an lookup definition. This method gets called after the object definition was started. The method will be called for every defined lookup property. Lookup properties reference previously created object using the object's registry name.

Parameters: name the property name of the base object lookupKey the register key of the referenced object

Throws: ObjectDescriptionException if an error occured.

handleManualMapping

protected abstract boolean handleManualMapping(String className, String readHandler, String writeHandler)
Handles a manual mapping definition. The manual mapping maps specific read and write handlers to a given base class. Manual mappings always override any other definition.

Parameters: className the base class name readHandler the class name of the read handler writeHandler the class name of the write handler

Returns: true, if the mapping was accepted, false otherwise.

Throws: ObjectDescriptionException if an unexpected error occured.

handleMultiplexMapping

protected abstract void handleMultiplexMapping(String typeName, String className)
Defines an entry for the multiplex mapping. The new entry will be activated when the base mappers type attribute contains this typename and will resolve to the handler for the given classname.

Parameters: typeName the type value for this mapping. className the class name to which this mapping resolves.

Throws: ObjectDescriptionException if an error occurs.

loadClass

protected Class loadClass(String className)
Loads the given class, and ignores all exceptions which may occur during the loading. If the class was invalid, null is returned instead.

Parameters: className the name of the class to be loaded.

Returns: the class or null.

parseXml

protected void parseXml(URL resource)
Parses an XML document at the given URL.

Parameters: resource the document URL.

Throws: ObjectDescriptionException ??

parseXmlDocument

protected void parseXmlDocument(URL resource, boolean isInclude)
Parses the given specification and loads all includes specified in the files. This implementation does not check for loops in the include files.

Parameters: resource the url of the xml specification. isInclude an include?

Throws: org.jfree.xml.util.ObjectDescriptionException if an error occured which prevented the loading of the specifications.

setCloseComment

protected void setCloseComment(String[] closeComment)
Sets the close comment.

Parameters: closeComment the close comment.

setOpenComment

protected void setOpenComment(String[] openComment)
Sets the open comment.

Parameters: openComment the open comment.

startIncludeHandling

protected void startIncludeHandling(URL resource)
Start handling an include.

Parameters: resource the URL.

startMultiplexMapping

protected abstract void startMultiplexMapping(String className, String typeAttr)
Starts a multiplex mapping. Multiplex mappings are used to define polymorphic argument handlers. The mapper will collect all derived classes of the given base class and will select the corresponding mapping based on the given type attribute.

Parameters: className the base class name typeAttr the xml-attribute name containing the mapping key

startObjectDefinition

protected abstract boolean startObjectDefinition(String className, String register, boolean ignored)
Starts a object definition. The object definition collects all properties of an bean-class and defines, which constructor should be used when creating the class.

Parameters: className the class name of the defined object register the (optional) register name, to lookup and reference the object later. ignored ??.

Returns: true, if the definition was accepted, false otherwise.

Throws: ObjectDescriptionException if an unexpected error occured.

startRootDocument

protected void startRootDocument()
Start the root document.