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

Peter Donald <[email protected]>
Newsgroups gmane.comp.java.spice.cvs
Message-ID <[email protected]>
donaldp     03/10/28 00:07:34

  Modified:    sandbox/metaclass/src/java/org/realityforge/metaclass/introspector
                        CachingMetaClassAccessor.java
                        MetaClassIntrospector.java
  Log:
  Rework so that the top level accessor is the one that passes down the accessor through chain
  
  Revision  Changes    Path
  1.3       +2 -10     spice/sandbox/metaclass/src/java/org/realityforge/metaclass/introspector/CachingMetaClassAccessor.java
  
  Index: CachingMetaClassAccessor.java
  ===================================================================
  RCS file: /cvsroot/spice/spice/sandbox/metaclass/src/java/org/realityforge/metaclass/introspector/CachingMetaClassAccessor.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CachingMetaClassAccessor.java	28 Oct 2003 07:01:01 -0000	1.2
  +++ CachingMetaClassAccessor.java	28 Oct 2003 08:07:32 -0000	1.3
  @@ -16,7 +16,7 @@
    * Caching MetaClassAccessor implementation.
    *
    * @author <a href="mailto:peter at realityforge.org">Peter Donald</a>
  - * @version $Revision: 1.2 $ $Date: 2003/10/28 07:01:01 $
  + * @version $Revision: 1.3 $ $Date: 2003/10/28 08:07:32 $
    */
   public class CachingMetaClassAccessor
      implements MetaClassAccessor
  @@ -27,14 +27,6 @@
      private MetaClassAccessor m_accessor = new DefaultMetaClassAccessor();
   
      /**
  -    * Wrapper Accessor that is passed to the above accessor
  -    * to retrieve ClassDescriptors. Ensures that no Accessor
  -    * can get a direct reference to the CachingMetaClassAccessor
  -    * and thus subvert descriptor loading process.
  -    */
  -   private final WrapperMetaClassAccessor m_wrapperAccessor = new WrapperMetaClassAccessor( this );
  -
  -   /**
       * The cache in which info objects are stored.
       * This cache stores maps for ClassLoaders which in
       * turn stores info for particular classes in
  @@ -92,7 +84,7 @@
            descriptor =
               m_accessor.getClassDescriptor( classname,
                                              classLoader,
  -                                           m_wrapperAccessor );
  +                                           accessor );
            cache.put( classname, descriptor );
            return descriptor;
         }
  
  
  
  1.5       +10 -2     spice/sandbox/metaclass/src/java/org/realityforge/metaclass/introspector/MetaClassIntrospector.java
  
  Index: MetaClassIntrospector.java
  ===================================================================
  RCS file: /cvsroot/spice/spice/sandbox/metaclass/src/java/org/realityforge/metaclass/introspector/MetaClassIntrospector.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MetaClassIntrospector.java	28 Oct 2003 07:01:01 -0000	1.4
  +++ MetaClassIntrospector.java	28 Oct 2003 08:07:33 -0000	1.5
  @@ -15,7 +15,7 @@
    * {@link java.beans.Introspector} class does for Java Beans.
    *
    * @author <a href="mailto:peter at realityforge.org">Peter Donald</a>
  - * @version $Revision: 1.4 $ $Date: 2003/10/28 07:01:01 $
  + * @version $Revision: 1.5 $ $Date: 2003/10/28 08:07:33 $
    */
   public final class MetaClassIntrospector
   {
  @@ -39,6 +39,14 @@
        */
       private static final CachingMetaClassAccessor c_cachingAccessor = new CachingMetaClassAccessor();
   
  +   /**
  +    * Wrapper Accessor that is passed to the above accessor
  +    * to retrieve ClassDescriptors. Ensures that no Accessor
  +    * can get a direct reference to the CachingMetaClassAccessor
  +    * and thus subvert descriptor loading process.
  +    */
  +   private static final WrapperMetaClassAccessor c_wrapperAccessor = new WrapperMetaClassAccessor( c_cachingAccessor );
  +
       /**
        * Flush all of the Introspector's internal caches.  This method is
        * not normally required.  It is normally only needed by advanced
  @@ -100,6 +108,6 @@
                                                         final ClassLoader classLoader )
           throws MetaClassException
       {
  -        return c_cachingAccessor.getClassDescriptor( classname, classLoader, null );
  +        return c_cachingAccessor.getClassDescriptor( classname, classLoader, c_wrapperAccessor );
       }
   }
  
  
  


-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. 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.