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