1
2
3
4
5
6
7
8 package org.codehaus.metaclass.introspector;
9
10 import org.codehaus.metaclass.model.ClassDescriptor;
11
12 /***
13 * This is the interface used to access MetaClass
14 * ClassDescriptors for a particular class. Note that
15 * the Accessor is passed another MetaClassAccessor that
16 * it can use to load other auxilliar classes such as super
17 * classes or interfaces. However there is no protection
18 * against circular references so MetaClassAccessor
19 * implementations must guard against such circumstances.
20 *
21 * @author Peter Donald
22 * @version $Revision: 1.4 $ $Date: 2003/11/27 08:09:53 $
23 */
24 public interface MetaClassAccessor
25 {
26 /***
27 * Return a ClassDescriptor for specified class.
28 *
29 * @param classname the classname to get ClassDescriptor for
30 * @param classLoader the classLoader to use
31 * @param accessor the accessor to use to load auxilliary classes
32 * @return the newly created ClassDescriptor
33 * @throws MetaClassException if unable to create ClassDescriptor
34 */
35 ClassDescriptor getClassDescriptor( String classname,
36 ClassLoader classLoader,
37 MetaClassAccessor accessor )
38 throws MetaClassException;
39 }