• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Javassist, a Java-bytecode translator toolkit.
3  * Copyright (C) 1999-2007 Shigeru Chiba. All Rights Reserved.
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License.  Alternatively, the contents of this file may be used under
8  * the terms of the GNU Lesser General Public License Version 2.1 or later.
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  */
15 
16 package javassist.scopedpool;
17 
18 import java.util.Map;
19 
20 import javassist.ClassPool;
21 
22 /**
23  * An interface to <code>ScopedClassPoolRepositoryImpl</code>.
24  *
25  * @author <a href="kabir.khan@jboss.com">Kabir Khan</a>
26  * @version $Revision: 1.4 $
27  */
28 public interface ScopedClassPoolRepository {
29     /**
30      * Records a factory.
31      */
setClassPoolFactory(ScopedClassPoolFactory factory)32     void setClassPoolFactory(ScopedClassPoolFactory factory);
33 
34     /**
35      * Obtains the recorded factory.
36      */
getClassPoolFactory()37     ScopedClassPoolFactory getClassPoolFactory();
38 
39     /**
40      * Returns whether or not the class pool is pruned.
41      *
42      * @return the prune.
43      */
isPrune()44     boolean isPrune();
45 
46     /**
47      * Sets the prune flag.
48      *
49      * @param prune     a new value.
50      */
setPrune(boolean prune)51     void setPrune(boolean prune);
52 
53     /**
54      * Create a scoped classpool.
55      *
56      * @param cl    the classloader.
57      * @param src   the original classpool.
58      * @return the classpool.
59      */
createScopedClassPool(ClassLoader cl, ClassPool src)60     ScopedClassPool createScopedClassPool(ClassLoader cl, ClassPool src);
61 
62     /**
63      * Finds a scoped classpool registered under the passed in classloader.
64      *
65      * @param cl    the classloader.
66      * @return the classpool.
67      */
findClassPool(ClassLoader cl)68     ClassPool findClassPool(ClassLoader cl);
69 
70     /**
71      * Register a classloader.
72      *
73      * @param ucl   the classloader.
74      * @return the classpool.
75      */
registerClassLoader(ClassLoader ucl)76     ClassPool registerClassLoader(ClassLoader ucl);
77 
78     /**
79      * Get the registered classloaders.
80      *
81      * @return the registered classloaders.
82      */
getRegisteredCLs()83     Map getRegisteredCLs();
84 
85     /**
86      * This method will check to see if a register classloader has been
87      * undeployed (as in JBoss).
88      */
clearUnregisteredClassLoaders()89     void clearUnregisteredClassLoaders();
90 
91     /**
92      * Unregisters a classpool and unregisters its classloader.
93      *
94      * @param cl    the classloader the pool is stored under.
95      */
unregisterClassLoader(ClassLoader cl)96     void unregisterClassLoader(ClassLoader cl);
97 }
98