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/