org.apache.openjpa.lib.meta
Class XMLMetaDataSerializer

java.lang.Object
  extended by org.apache.openjpa.lib.meta.XMLMetaDataSerializer
All Implemented Interfaces:
MetaDataSerializer
Direct Known Subclasses:
CFMetaDataSerializer, XMLSchemaSerializer

public abstract class XMLMetaDataSerializer
extends Object
implements MetaDataSerializer

Abstract base type for serlializers that transfer groups of objects to XML. Includes a way of serializing objects back to the XML files they were parsed from. Serializers are not thread safe.

Author:
Abe White

Field Summary
 
Fields inherited from interface org.apache.openjpa.lib.meta.MetaDataSerializer
APPEND, COMPACT, PRETTY, VERBOSE
 
Constructor Summary
XMLMetaDataSerializer()
           
 
Method Summary
protected  void addAttribute(String name, String value)
          Add an attribute to the current group.
protected  void addComments(Object obj)
          Write the given entity's comments.
protected  void addComments(String[] comments)
          Add a comment to the stream.
protected  void addText(String text)
          Add text to the current element.
protected  File currentBackupFile()
          The backup file made for the current file being parsed.
protected  void endElement(String name)
          End the current element.
protected  Attributes getAttributes()
          The current attributes.
protected  Map<File,Collection<Object>> getFileMap()
          Returns a Map with keys of the File to be written to, and values of a Collection of SourceTracker instances.
 Log getLog()
          The log to write to.
protected abstract  Collection<Object> getObjects()
          Return the current set of objects for serialization.
protected  File getSourceFile(Object obj)
          Return the source file for the given instance.
protected  boolean isVerbose()
          Whether this serialization is in verbose mode.
protected  File prepareWrite(File file)
          Prepare to write to the given file.
protected  void reset()
          Reset serialization state for the next document.
protected abstract  void serialize(Collection<Object> objs)
          Serialize the given set of objects.
 void serialize(ContentHandler handler, int flags)
          Serilize the current set of objects to a series of SAX events on the given handler.
 void serialize(File file, int flags)
          Serialize the current set of objects to the given file.
 void serialize(int flags)
          Serialize the current set of objects to the files from which they were parsed.
 void serialize(Map output, int flags)
          Serialize the current set of objects to the files from which they were parsed.
 void serialize(Result result, int flags)
          Serialize the current set of objects to the given result.
 void serialize(Writer out, int flags)
          Serialize the current set of objects to the given stream.
 void setLog(Log log)
          The log to write to.
protected  void startElement(String name)
          Start an element with the current attribute settings.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XMLMetaDataSerializer

public XMLMetaDataSerializer()
Method Detail

getLog

public Log getLog()
The log to write to.


setLog

public void setLog(Log log)
The log to write to.


serialize

public void serialize(int flags)
               throws IOException
Description copied from interface: MetaDataSerializer
Serialize the current set of objects to the files from which they were parsed. Any objects for which a source file cannot be determined will not be included in the output.

Specified by:
serialize in interface MetaDataSerializer
Parameters:
flags - bit flags specifying the output flags; e.g. MetaDataSerializer.PRETTY
Throws:
IOException

serialize

public void serialize(Map output,
                      int flags)
               throws IOException
Description copied from interface: MetaDataSerializer
Serialize the current set of objects to the files from which they were parsed. The objects must implement the SourceTracker interface.

Specified by:
serialize in interface MetaDataSerializer
Parameters:
output - if null, then serialize directly to the file system; otherwise, populate the specified Map with keys that are the File instances, and values that are the String contents of the MetaData
flags - bit flags specifying the output flags; e.g. MetaDataSerializer.PRETTY
Throws:
IOException

prepareWrite

protected File prepareWrite(File file)
                     throws IOException
Prepare to write to the given file. Back up the file and make sure the path to it is created.

Throws:
IOException

getFileMap

protected Map<File,Collection<Object>> getFileMap()
Returns a Map with keys of the File to be written to, and values of a Collection of SourceTracker instances.


getSourceFile

protected File getSourceFile(Object obj)
Return the source file for the given instance. By default, checks to see if the instance implements SourceTracker.


serialize

public void serialize(File file,
                      int flags)
               throws IOException
Description copied from interface: MetaDataSerializer
Serialize the current set of objects to the given file.

Specified by:
serialize in interface MetaDataSerializer
flags - bit flags specifying the output flags; e.g. MetaDataSerializer.PRETTY | MetaDataSerializer.APPEND
Throws:
IOException

serialize

public void serialize(Writer out,
                      int flags)
               throws IOException
Description copied from interface: MetaDataSerializer
Serialize the current set of objects to the given stream.

Specified by:
serialize in interface MetaDataSerializer
flags - bit flags specifying the output flags; e.g. MetaDataSerializer.PRETTY
Throws:
IOException

serialize

public void serialize(Result result,
                      int flags)
               throws SAXException
Serialize the current set of objects to the given result.

Throws:
SAXException

serialize

public void serialize(ContentHandler handler,
                      int flags)
               throws SAXException
Serilize the current set of objects to a series of SAX events on the given handler.

Throws:
SAXException

isVerbose

protected boolean isVerbose()
Whether this serialization is in verbose mode.


currentBackupFile

protected File currentBackupFile()
The backup file made for the current file being parsed.


startElement

protected void startElement(String name)
                     throws SAXException
Start an element with the current attribute settings. Clears the attributes as well.

Throws:
SAXException

endElement

protected void endElement(String name)
                   throws SAXException
End the current element.

Throws:
SAXException

addText

protected void addText(String text)
                throws SAXException
Add text to the current element.

Throws:
SAXException

addAttribute

protected void addAttribute(String name,
                            String value)
Add an attribute to the current group.


getAttributes

protected Attributes getAttributes()
The current attributes.


addComments

protected void addComments(String[] comments)
                    throws SAXException
Add a comment to the stream.

Throws:
SAXException

addComments

protected void addComments(Object obj)
                    throws SAXException
Write the given entity's comments. By default, tests if entity is Commentable.

Throws:
SAXException

reset

protected void reset()
Reset serialization state for the next document.


serialize

protected abstract void serialize(Collection<Object> objs)
                           throws SAXException
Serialize the given set of objects.

Throws:
SAXException

getObjects

protected abstract Collection<Object> getObjects()
Return the current set of objects for serialization.



Copyright © 2006-2010 Apache Software Foundation. All Rights Reserved.