cvs commit: spice/sandbox/metaclass/src/java/org/realityforge/metaclass/io SAXMetaClassSerializer.java

Peter Donald <[email protected]>
Newsgroups gmane.comp.java.spice.cvs
Message-ID <[email protected]>
donaldp     03/10/29 02:19:15

  Modified:    sandbox/metaclass/src/java/org/realityforge/metaclass/io
                        SAXMetaClassSerializer.java
  Log:
  Wrap all method parameters in a <parameters/> element
  
  Revision  Changes    Path
  1.8       +29 -4     spice/sandbox/metaclass/src/java/org/realityforge/metaclass/io/SAXMetaClassSerializer.java
  
  Index: SAXMetaClassSerializer.java
  ===================================================================
  RCS file: /cvsroot/spice/spice/sandbox/metaclass/src/java/org/realityforge/metaclass/io/SAXMetaClassSerializer.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SAXMetaClassSerializer.java	29 Oct 2003 09:37:59 -0000	1.7
  +++ SAXMetaClassSerializer.java	29 Oct 2003 10:19:15 -0000	1.8
  @@ -21,7 +21,7 @@
    * to a SAX2 compliant ContentHandler.
    *
    * @author <a href="mailto:peter at realityforge.org">Peter Donald</a>
  - * @version $Revision: 1.7 $ $Date: 2003/10/29 09:37:59 $
  + * @version $Revision: 1.8 $ $Date: 2003/10/29 10:19:15 $
    */
   public class SAXMetaClassSerializer
   {
  @@ -61,6 +61,11 @@
       static final String METHOD_ELEMENT = "method";
   
       /**
  +     * Constant for name of method parameters group element.
  +     */
  +    static final String PARAMETERS_ELEMENT = "parameters";
  +
  +    /**
        * Constant for name of method parameters element.
        */
       static final String PARAMETER_ELEMENT = "parameter";
  @@ -153,7 +158,7 @@
           {
               return;
           }
  -        start( handler, FIELDS_ELEMENT, new AttributesImpl() );
  +        start( handler, FIELDS_ELEMENT );
           for( int i = 0; i < descriptors.length; i++ )
           {
               serializeField( handler, descriptors[ i ] );
  @@ -195,7 +200,7 @@
           {
               return;
           }
  -        start( handler, METHODS_ELEMENT, new AttributesImpl() );
  +        start( handler, METHODS_ELEMENT );
           for( int i = 0; i < descriptors.length; i++ )
           {
               serializeMethod( handler, descriptors[ i ] );
  @@ -234,10 +239,16 @@
                                 final ParameterDescriptor[] parameters )
           throws SAXException
       {
  +        if( 0 == parameters.length )
  +        {
  +            return;
  +        }
  +        start( handler, PARAMETERS_ELEMENT );
           for( int i = 0; i < parameters.length; i++ )
           {
               serializeParameter( handler, parameters[ i ] );
           }
  +        end( handler, PARAMETERS_ELEMENT );
       }
   
       /**
  @@ -273,7 +284,7 @@
           {
               return;
           }
  -        start( handler, ATTRIBUTES_ELEMENT, new AttributesImpl() );
  +        start( handler, ATTRIBUTES_ELEMENT );
           for( int i = 0; i < attributes.length; i++ )
           {
               serializeAttribute( handler, attributes[ i ] );
  @@ -355,6 +366,20 @@
                 final String value )
       {
           atts.addAttribute( EMPTY_NAMESPACE, name, name, CDATA_TYPE, value );
  +    }
  +
  +    /**
  +     * Helper method to output a start element.
  +     *
  +     * @param handler the handler
  +     * @param name the element name
  +     * @throws SAXException if error during serilization
  +     */
  +    void start( final ContentHandler handler,
  +                final String name )
  +        throws SAXException
  +    {
  +        start( handler, name, new AttributesImpl() );
       }
   
       /**
  
  
  


-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.