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 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 42 protected boolean isEagerlyInstantiating(){ 43 if(eager_mode_specified){ 44 return eager_init; 45 } 46 else{ 47 return this.getNutEnvironment().isEagerlyInstantiating(); 48 } 49 } 50 55 protected void registerValue(Object key, Object 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 |