View Javadoc

1   /*
2    * Copyright (C) The MetaClass Group. All rights reserved.
3    *
4    * This software is published under the terms of the Spice
5    * Software License version 1.1, a copy of which has been included
6    * with this distribution in the LICENSE.txt file.
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  }