cvs commit: spice/sandbox/metaclass/src/java/org/realityforge/metaclass/introspector DefaultMetaClassAccessor.java

Peter Donald <[email protected]>
Newsgroups gmane.comp.java.spice.cvs
Message-ID <[email protected]>
donaldp     03/10/31 17:31:57

  Modified:    sandbox/metaclass/src/java/org/realityforge/metaclass/introspector
                        DefaultMetaClassAccessor.java
  Log:
  enable loading of descriptors from xml part of runtime
  
  Revision  Changes    Path
  1.7       +31 -15    spice/sandbox/metaclass/src/java/org/realityforge/metaclass/introspector/DefaultMetaClassAccessor.java
  
  Index: DefaultMetaClassAccessor.java
  ===================================================================
  RCS file: /cvsroot/spice/spice/sandbox/metaclass/src/java/org/realityforge/metaclass/introspector/DefaultMetaClassAccessor.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DefaultMetaClassAccessor.java	1 Nov 2003 01:14:56 -0000	1.6
  +++ DefaultMetaClassAccessor.java	1 Nov 2003 01:31:57 -0000	1.7
  @@ -10,6 +10,7 @@
   import java.io.InputStream;
   import org.realityforge.metaclass.io.MetaClassIO;
   import org.realityforge.metaclass.io.MetaClassIOBinary;
  +import org.realityforge.metaclass.io.MetaClassIOXml;
   import org.realityforge.metaclass.model.ClassDescriptor;
   
   /**
  @@ -35,7 +36,7 @@
    * </ul>
    *
    * @author <a href="mailto:peter at realityforge.org">Peter Donald</a>
  - * @version $Revision: 1.6 $ $Date: 2003/11/01 01:14:56 $
  + * @version $Revision: 1.7 $ $Date: 2003/11/01 01:31:57 $
    */
   public class DefaultMetaClassAccessor
       implements MetaClassAccessor
  @@ -51,26 +52,34 @@
       public static final String XML_EXT = "-meta.xml";
   
       /**
  -     * Class used to read the MetaData.
  +     * Class used to read the MetaData in binary format.
        */
  -    private static final MetaClassIO c_metaClassIO = new MetaClassIOBinary();
  +    private static final MetaClassIO c_binaryIO = new MetaClassIOBinary();
   
       /**
  -     * Return a {@link ClassDescriptor} for specified class.
  -     * Uses process specified in class Javadoc to create descriptor.
  -     *
  -     * @param classname the classname to get {@link ClassDescriptor} for
  -     * @param classLoader the classLoader to use
  -     * @return the newly created {@link ClassDescriptor}
  -     * @throws MetaClassException if unable to create {@link ClassDescriptor}
  +     * Class used to read the MetaData in XML format.
  +     */
  +    private static final MetaClassIO c_xmlIO = new MetaClassIOXml();
  +
  +    /**
  +     * @see MetaClassAccessor#getClassDescriptor
        */
       public ClassDescriptor getClassDescriptor( final String classname,
  -                                               final ClassLoader classLoader, MetaClassAccessor accessor )
  +                                               final ClassLoader classLoader,
  +                                               final MetaClassAccessor accessor )
           throws MetaClassException
       {
  -        final String resource = classname.replace( '.', '/' ) + BINARY_EXT;
  -        final InputStream inputStream =
  -            classLoader.getResourceAsStream( resource );
  +        boolean isXML = false;
  +        final String baseName = classname.replace( '.', '/' );
  +        String resource = baseName + BINARY_EXT;
  +        InputStream inputStream = classLoader.getResourceAsStream( resource );
  +        if( null == inputStream )
  +        {
  +            resource = baseName + XML_EXT;
  +            inputStream = classLoader.getResourceAsStream( resource );
  +            isXML = true;
  +        }
  +
           if( null == inputStream )
           {
               final String message =
  @@ -80,7 +89,14 @@
   
           try
           {
  -            return c_metaClassIO.deserializeClass( inputStream );
  +            if( isXML )
  +            {
  +                return c_xmlIO.deserializeClass( inputStream );
  +            }
  +            else
  +            {
  +                return c_binaryIO.deserializeClass( inputStream );
  +            }
           }
           catch( final Exception e )
           {
  
  
  


-------------------------------------------------------
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.