KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > fractal > julia > asm > ClassGenerator


1 /***
2  * Julia: France Telecom's implementation of the Fractal API
3  * Copyright (C) 2001-2002 France Telecom R&D
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Contact: Eric.Bruneton@rd.francetelecom.com
20  *
21  * Author: Eric Bruneton
22  */

23
24 package org.objectweb.fractal.julia.asm;
25
26 import org.objectweb.fractal.julia.loader.Loader;
27 import org.objectweb.fractal.julia.loader.Tree;
28
29 /**
30  * The interface that all Julia's class generators must implement.
31  */

32
33 public interface ClassGenerator {
34
35   /**
36    * Generates the class whose descriptor is given, with the given name. The
37    * generated class must implement the {@link
38    * org.objectweb.fractal.julia.loader.Generated} interface, and its {@link
39    * org.objectweb.fractal.julia.loader.Generated#getFcGeneratorParameters
40    * getFcGeneratorParameters} method must return <tt>args.toString()</tt>.
41    *
42    * @param name the name of the class to be generated.
43    * @param args the descriptor of the class to be generated. This
44    * descriptor <i>must</i> be of the form "(objectDescriptor arg1 ...
45    * argN)" (see {@link
46    * Loader#loadClass(org.objectweb.fractal.julia.loader.Tree) loadClass}).
47    * @param loader the loader to be used to load or generate auxiliary classes,
48    * if needed.
49    * @param classLoader the class loader to be used to load auxiliary classes,
50    * if needed.
51    * @return a class named <tt>name</tt> and whose content is described by the
52    * given class descriptor.
53    * @throws ClassGenerationException if a problem occurs during the generation
54    * of the class.
55    */

56
57   byte[] generateClass (String JavaDoc name, Tree args, Loader loader, ClassLoader JavaDoc classLoader)
58     throws ClassGenerationException;
59 }
60
Popular Tags