1 package jfun.yan.xml.nuts.spring; 2 3 4 import java.util.Properties ; 5 6 import org.springframework.beans.factory.DisposableBean; 7 import org.springframework.context.ApplicationContext; 8 import org.springframework.transaction.PlatformTransactionManager; 9 10 import jfun.yan.Component; 11 import jfun.yan.spring.SpringAdapter; 12 import jfun.yan.spring.SpringContext; 13 import jfun.yan.xml.SingletonMode; 14 import jfun.yan.xml.nuts.ConstructorNut; 15 16 22 public class SpringCtorNut extends ConstructorNut 23 implements SpringContext{ 24 private final SpringService spring; 25 private Component tx; 26 private Component transaction_attrs; 27 private String [] interfaces; 28 public void setInit_method(String name){ 29 setInitializer(name); 30 } 31 public void setDestroy_method(String name){ 32 setDisposer(name); 33 } 34 public void setStart_method(String name){ 35 setStarter(name); 36 } 37 public void setStop_method(String name){ 38 setStopper(name); 39 } 40 41 42 public String [] getInterfaces() { 43 return interfaces; 44 } 45 46 public void setInterfaces(String [] interfaces) { 47 this.interfaces = interfaces; 48 } 49 50 public Component getTransactionAttributes() { 51 return transaction_attrs; 52 } 53 54 public void setTransactionAttributes(Component transaction_attrs) { 55 this.transaction_attrs = 56 cast(Properties .class, transaction_attrs); 57 } 58 59 public Component getTransactionManager() { 60 return tx; 61 } 62 63 public void setTransactionManager(Component tx) { 64 this.tx = cast(PlatformTransactionManager.class, tx); 65 } 66 67 public SpringCtorNut(SpringService service) { 68 this.spring = service; 69 } 70 71 public void manageDisposableBean(DisposableBean instance){ 72 spring.manageDisposableBean(instance); 73 } 74 75 public ApplicationContext getApplicationContext() { 76 return spring.getApplicationContext(); 77 } 78 79 public Component eval(){ 80 final Component r = super.eval(); 81 return SpringAdapter.adapt(r, this, tx, transaction_attrs, interfaces); 82 } 83 84 public void addBeanPostProcessor(String key, Component bpp) { 85 spring.addBeanPostProcessor(key, bpp.getType(), bpp); 86 } 87 88 private boolean singleton_attribute_set = false; 89 private SingletonMode singleton; 90 public SingletonMode getSingleton() { 91 return singleton; 92 } 93 public void setSingleton(SingletonMode singleton) { 94 singleton_attribute_set = true; 95 this.singleton = singleton; 96 } 97 public boolean isSingletonAttributeSet() { 98 return singleton_attribute_set; 99 } 100 } 101 | Popular Tags |