1 /* QuiltRegistry.java */
2 package org.quilt.reg;
3
4 import org.quilt.cl.*;
5
6 /***
7 * A registry for use by Quilt class loaders. Adds transformers to the
8 * class loader prior to use. Stores information collected while loading
9 * classes under a String array key. Dumps that information on request.
10 *
11 * @author <a href="jddixon@users.sourceforge.net">Jim Dixon</a>
12 */
13 public abstract class QuiltRegistry extends Registry {
14
15 /*** List of class transformers associated with this registry. */
16 protected ClassXformer cxf[];
17
18 /*** List of method transformers associated with this registry. */
19 protected MethodXformer mxf[];
20
21 /*** List of graph transformers associated with this registry. */
22 protected GraphXformer gxf[];
23
24 /*** The Quilt class loader using this registry. */
25 protected QuiltClassLoader qcl_;
26
27 public QuiltRegistry ( QuiltClassLoader qcl ) {
28 super();
29 if (qcl == null) {
30 throw new IllegalArgumentException("null QuiltClassLoader");
31 }
32 qcl_ = qcl;
33 }
34
35 /***
36 * Attaches transformers to the class loader; classes extending
37 * this class should call in the constructor after setting up the
38 * lists.
39 */
40 public final void setTransformers () {
41 if (cxf != null) {
42 for (int i = 0; i < cxf.length; i++) {
43 qcl_.addClassXformer(cxf[i]);
44 }
45 }
46 if (mxf != null) {
47 for (int i = 0; i < mxf.length; i++) {
48 qcl_.addMethodXformer(mxf[i]);
49 }
50 }
51 if (gxf != null) {
52 for (int i = 0; i < gxf.length; i++) {
53 qcl_.addGraphXformer(gxf[i]);
54 }
55 }
56 }
57 /*** Resets items in the registry in an application-specific manner. */
58 abstract public void reset();
59
60 /*** Dumps the registry in a form appropriate to the application. */
61 abstract public String getReport ();
62
63 }
This page was automatically generated by Maven