KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jfun > yan > xml > nuts > optional > AbstractRegisterNut


1 package jfun.yan.xml.nuts.optional;
2
3
4 import jfun.yan.Creator;
5 import jfun.yan.xml.NutsUtils;
6 import jfun.yan.xml.nut.Nut;
7
8 /**
9  * This class provides the basic functionality for any tag
10  * that wants to support dynamic component registration.
11  * <p>
12  * @author Ben Yu
13  * Dec 22, 2005 12:30:22 AM
14  */

15 public abstract class AbstractRegisterNut extends Nut {
16   private boolean overridable = false;
17   private boolean overriding = false;
18   private boolean eager_init = false;
19   private boolean eager_mode_specified = false;
20   public boolean isEager_init() {
21     return eager_init;
22   }
23   public void setEager_init(boolean eager_init) {
24     eager_mode_specified = true;
25     this.eager_init = eager_init;
26   }
27   public boolean isOverridable() {
28     return overridable;
29   }
30   public void setOverridable(boolean overridable) {
31     this.overridable = overridable;
32   }
33   public boolean isOverriding() {
34     return overriding;
35   }
36   public void setOverriding(boolean overriding) {
37     this.overriding = overriding;
38   }
39   /**
40    * Is this registration eagerly instantiated?
41    */

42   protected boolean isEagerlyInstantiating(){
43     if(eager_mode_specified){
44       return eager_init;
45     }
46     else{
47       return this.getNutEnvironment().isEagerlyInstantiating();
48     }
49   }
50   /**
51    * Dynamically register a value.
52    * @param key the key.
53    * @param val the value.
54    */

55   protected void registerValue(Object JavaDoc key, Object JavaDoc val){
56     if(val==null) return;
57     if(isEagerlyInstantiating() && val instanceof Creator){
58       registerEagerInstantiation(NutsUtils.asComponent(val));
59     }
60     register(key, val, overridable, overriding);
61   }
62 }
63
Popular Tags