Class XMLMetaDataSerializer

  • All Implemented Interfaces:
    MetaDataSerializer
    Direct Known Subclasses:
    CFMetaDataSerializer, XMLSchemaSerializer

    public abstract class XMLMetaDataSerializer
    extends java.lang.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
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addAttribute​(java.lang.String name, java.lang.String value)
      Add an attribute to the current group.
      protected void addComments​(java.lang.Object obj)
      Write the given entity's comments.
      protected void addComments​(java.lang.String[] comments)
      Add a comment to the stream.
      protected void addText​(java.lang.String text)
      Add text to the current element.
      protected java.io.File currentBackupFile()
      The backup file made for the current file being parsed.
      protected void endElement​(java.lang.String name)
      End the current element.
      protected org.xml.sax.Attributes getAttributes()
      The current attributes.
      protected java.util.Map<java.io.File,​java.util.Collection<java.lang.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 java.util.Collection<java.lang.Object> getObjects()
      Return the current set of objects for serialization.
      protected java.io.File getSourceFile​(java.lang.Object obj)
      Return the source file for the given instance.
      protected boolean isVerbose()
      Whether this serialization is in verbose mode.
      protected java.io.File prepareWrite​(java.io.File file)
      Prepare to write to the given file.
      protected void reset()
      Reset serialization state for the next document.
      void serialize​(int flags)
      Serialize the current set of objects to the files from which they were parsed.
      void serialize​(java.io.File file, int flags)
      Serialize the current set of objects to the given file.
      void serialize​(java.io.Writer out, int flags)
      Serialize the current set of objects to the given stream.
      protected abstract void serialize​(java.util.Collection<java.lang.Object> objs)
      Serialize the given set of objects.
      void serialize​(java.util.Map output, int flags)
      Serialize the current set of objects to the files from which they were parsed.
      void serialize​(javax.xml.transform.Result result, int flags)
      Serialize the current set of objects to the given result.
      void serialize​(org.xml.sax.ContentHandler handler, int flags)
      Serilize the current set of objects to a series of SAX events on the given handler.
      void setLog​(Log log)
      The log to write to.
      protected void startElement​(java.lang.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 java.io.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:
        java.io.IOException
      • serialize

        public void serialize​(java.util.Map output,
                              int flags)
                       throws java.io.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:
        java.io.IOException
      • prepareWrite

        protected java.io.File prepareWrite​(java.io.File file)
                                     throws java.io.IOException
        Prepare to write to the given file. Back up the file and make sure the path to it is created.
        Throws:
        java.io.IOException
      • getFileMap

        protected java.util.Map<java.io.File,​java.util.Collection<java.lang.Object>> getFileMap()
        Returns a Map with keys of the File to be written to, and values of a Collection of SourceTracker instances.
      • getSourceFile

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

        public void serialize​(java.io.Writer out,
                              int flags)
                       throws java.io.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:
        java.io.IOException
      • serialize

        public void serialize​(javax.xml.transform.Result result,
                              int flags)
                       throws org.xml.sax.SAXException
        Serialize the current set of objects to the given result.
        Throws:
        org.xml.sax.SAXException
      • serialize

        public void serialize​(org.xml.sax.ContentHandler handler,
                              int flags)
                       throws org.xml.sax.SAXException
        Serilize the current set of objects to a series of SAX events on the given handler.
        Throws:
        org.xml.sax.SAXException
      • isVerbose

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

        protected java.io.File currentBackupFile()
        The backup file made for the current file being parsed.
      • startElement

        protected void startElement​(java.lang.String name)
                             throws org.xml.sax.SAXException
        Start an element with the current attribute settings. Clears the attributes as well.
        Throws:
        org.xml.sax.SAXException
      • endElement

        protected void endElement​(java.lang.String name)
                           throws org.xml.sax.SAXException
        End the current element.
        Throws:
        org.xml.sax.SAXException
      • addText

        protected void addText​(java.lang.String text)
                        throws org.xml.sax.SAXException
        Add text to the current element.
        Throws:
        org.xml.sax.SAXException
      • addAttribute

        protected void addAttribute​(java.lang.String name,
                                    java.lang.String value)
        Add an attribute to the current group.
      • getAttributes

        protected org.xml.sax.Attributes getAttributes()
        The current attributes.
      • addComments

        protected void addComments​(java.lang.String[] comments)
                            throws org.xml.sax.SAXException
        Add a comment to the stream.
        Throws:
        org.xml.sax.SAXException
      • addComments

        protected void addComments​(java.lang.Object obj)
                            throws org.xml.sax.SAXException
        Write the given entity's comments. By default, tests if entity is Commentable.
        Throws:
        org.xml.sax.SAXException
      • reset

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

        protected abstract void serialize​(java.util.Collection<java.lang.Object> objs)
                                   throws org.xml.sax.SAXException
        Serialize the given set of objects.
        Throws:
        org.xml.sax.SAXException
      • getObjects

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