mdahm       2002/06/06 04:33:20

  Modified:    src/java/org/apache/bcel/util ClassLoader.java
                        ClassLoaderRepository.java Repository.java
  Log:
  Added removeClass
  
  Revision  Changes    Path
  1.5       +24 -26    jakarta-bcel/src/java/org/apache/bcel/util/ClassLoader.java
  
  Index: ClassLoader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/util/ClassLoader.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ClassLoader.java  10 May 2002 14:45:56 -0000      1.4
  +++ ClassLoader.java  6 Jun 2002 11:33:20 -0000       1.5
  @@ -79,7 +79,7 @@
    * where to use the system class loader in the constructor. The default value 
contains
    * "java.", "sun.", "javax."</p>
    *
  - * @version $Id: ClassLoader.java,v 1.4 2002/05/10 14:45:56 ddp Exp $
  + * @version $Id: ClassLoader.java,v 1.5 2002/06/06 11:33:20 mdahm Exp $
    * @author  <A HREF="mailto:[EMAIL PROTECTED]";>M. Dahm</A>
    * @see JavaWrapper
    * @see ClassPath
  @@ -89,42 +89,40 @@
     private String[] ignored_packages = {
       "java.", "javax.", "sun."
     };
  -    private Repository repository = 
  -     SyntheticRepository.getInstance();
  -    private java.lang.ClassLoader deferTo = ClassLoader.getSystemClassLoader();
  +  private Repository repository = SyntheticRepository.getInstance();
  +  private java.lang.ClassLoader deferTo = ClassLoader.getSystemClassLoader();
   
     public ClassLoader() {
     }
   
  -    public ClassLoader( java.lang.ClassLoader deferTo ) {
  -     this.deferTo = deferTo;
  -     this.repository = new ClassLoaderRepository( deferTo );
  -    }
  +  public ClassLoader(java.lang.ClassLoader deferTo) {
  +    this.deferTo = deferTo;
  +    this.repository = new ClassLoaderRepository(deferTo);
  +  }
   
     /** @param ignored_packages classes contained in these packages will be loaded
      * with the system class loader
      */
     public ClassLoader(String[] ignored_packages) {
  -      addIgnoredPkgs( ignored_packages );
  +    addIgnoredPkgs(ignored_packages);
     }
   
  -    public ClassLoader( java.lang.ClassLoader deferTo, 
  -                     String [] ignored_packages ) {
  -     this.deferTo = deferTo;
  -     this.repository = new ClassLoaderRepository( deferTo );
  +  public ClassLoader(java.lang.ClassLoader deferTo, String [] ignored_packages) {
  +    this.deferTo = deferTo;
  +    this.repository = new ClassLoaderRepository(deferTo);
   
  -     addIgnoredPkgs( ignored_packages );
  -    }
  +    addIgnoredPkgs(ignored_packages);
  +  }
   
  -    private void addIgnoredPkgs( String[] ignored_packages ) {
  -     String[] new_p = new String[ignored_packages.length + 
this.ignored_packages.length];
  +  private void addIgnoredPkgs(String[] ignored_packages) {
  +    String[] new_p = new String[ignored_packages.length + 
this.ignored_packages.length];
        
  -     System.arraycopy(this.ignored_packages, 0, new_p, 0, 
this.ignored_packages.length);
  -     System.arraycopy(ignored_packages, 0, new_p, this.ignored_packages.length,
  -                      ignored_packages.length);
  +    System.arraycopy(this.ignored_packages, 0, new_p, 0, 
this.ignored_packages.length);
  +    System.arraycopy(ignored_packages, 0, new_p, this.ignored_packages.length,
  +                  ignored_packages.length);
   
  -     this.ignored_packages = new_p;
  -    }
  +    this.ignored_packages = new_p;
  +  }
     
     protected Class loadClass(String class_name, boolean resolve) 
       throws ClassNotFoundException 
  @@ -152,9 +150,9 @@
        if(class_name.indexOf("$$BCEL$$") >= 0)
          clazz = createClass(class_name);
        else { // Fourth try: Load classes via repository
  -         if ( (clazz = repository.loadClass( class_name )) != null) {
  -             clazz = modifyClass( clazz );
  -         }
  +       if ((clazz = repository.loadClass(class_name)) != null) {
  +         clazz = modifyClass(clazz);
  +       }
          else
            throw new ClassNotFoundException(class_name);
        }
  @@ -192,7 +190,7 @@
      *
      * The default implementation interprets the string as a encoded compressed
      * Java class, unpacks and decodes it with the Utility.decode() method, and
  -   * parses thee resulting byte array and returns the resulting JavaClass object.
  +   * parses the resulting byte array and returns the resulting JavaClass object.
      *
      * @param class_name compressed byte code with "$$BCEL$$" in it
      */
  
  
  
  1.2       +7 -0      
jakarta-bcel/src/java/org/apache/bcel/util/ClassLoaderRepository.java
  
  Index: ClassLoaderRepository.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-bcel/src/java/org/apache/bcel/util/ClassLoaderRepository.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ClassLoaderRepository.java        8 May 2002 20:59:29 -0000       1.1
  +++ ClassLoaderRepository.java        6 Jun 2002 11:33:20 -0000       1.2
  @@ -89,6 +89,13 @@
        clazz.setRepository( this );
       }
   
  +  /**
  +   * Remove class from repository
  +   */
  +  public void removeClass(JavaClass clazz) {
  +    loadedClasses.remove(clazz.getClassName());
  +  }
  +
       /**
        * Find an already defined JavaClass.
        */
  
  
  
  1.2       +6 -0      jakarta-bcel/src/java/org/apache/bcel/util/Repository.java
  
  Index: Repository.java
  ===================================================================
  RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/util/Repository.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Repository.java   8 May 2002 20:59:29 -0000       1.1
  +++ Repository.java   6 Jun 2002 11:33:20 -0000       1.2
  @@ -62,12 +62,18 @@
        * Store the provided class under "clazz.getClassName()" 
        */
       public void storeClass( JavaClass clazz );
  +
  +    /**
  +     * Remove class from repository
  +     */
  +    public void removeClass( JavaClass clazz );
       
       /**
        * Find the class with the name provided, if the class
        * isn't there, return NULL.
        */
       public JavaClass findClass( String className );
  +
   
       /**
        * Find the class with the name provided, if the class
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to