KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jfun > yan > xml > nuts > spring > SpringMethodNut


1 package jfun.yan.xml.nuts.spring;
2
3 import java.util.Properties JavaDoc;
4
5 import org.springframework.beans.factory.DisposableBean;
6 import org.springframework.context.ApplicationContext;
7 import org.springframework.transaction.PlatformTransactionManager;
8
9 import jfun.yan.Component;
10 import jfun.yan.spring.SpringAdapter;
11 import jfun.yan.spring.SpringContext;
12 import jfun.yan.xml.SingletonMode;
13 import jfun.yan.xml.nuts.MethodNut;
14
15 /**
16  * A spring-aware method tag.
17  * <p>
18  * @author Ben Yu
19  * Nov 17, 2005 12:07:25 AM
20  */

21 public class SpringMethodNut extends MethodNut implements SpringContext {
22   private final SpringService spring;
23   private Component tx;
24   private Component transaction_attrs;
25   private String JavaDoc[] interfaces;
26   public void setInit_method(String JavaDoc name){
27     setInitializer(name);
28   }
29   public void setDestroy_method(String JavaDoc name){
30     setDisposer(name);
31   }
32   public void setStart_method(String JavaDoc name){
33     setStarter(name);
34   }
35   public void setStop_method(String JavaDoc name){
36     setStopper(name);
37   }
38
39
40
41   public String JavaDoc[] getInterfaces() {
42     return interfaces;
43   }
44
45   public void setInterfaces(String JavaDoc[] interfaces) {
46     this.interfaces = interfaces;
47   }
48
49   public Component getTransactionAttributes() {
50     return transaction_attrs;
51   }
52
53   public void setTransactionAttributes(Component transaction_attrs) {
54     this.transaction_attrs =
55       cast(Properties JavaDoc.class, transaction_attrs);
56   }
57
58   public Component getTransactionManager() {
59     return tx;
60   }
61
62   public void setTransactionManager(Component tx) {
63     this.tx = cast(PlatformTransactionManager.class, tx);
64   }
65
66   public SpringMethodNut(SpringService service) {
67     this.spring = service;
68   }
69
70   public void manageDisposableBean(DisposableBean instance){
71     spring.manageDisposableBean(instance);
72   }
73
74   public ApplicationContext getApplicationContext() {
75     return spring.getApplicationContext();
76   }
77
78   public Component eval(){
79     final Component r = super.eval();
80     return SpringAdapter.adapt(r, this, tx, transaction_attrs, interfaces);
81   }
82
83   public void addBeanPostProcessor(String JavaDoc key, Component bpp) {
84     spring.addBeanPostProcessor(key, bpp.getType(), bpp);
85   }
86   
87   private boolean singleton_attribute_set = false;
88   private SingletonMode singleton;
89   public SingletonMode getSingleton() {
90     return singleton;
91   }
92   public void setSingleton(SingletonMode singleton) {
93     singleton_attribute_set = true;
94     this.singleton = singleton;
95   }
96   public boolean isSingletonAttributeSet() {
97     return singleton_attribute_set;
98   }
99 }
100
Popular Tags