KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfox > ejb > meta > ContainerTransactionDescriptor


1 /* JFox, the OpenSource J2EE Application Server
2  *
3  * Distributable under GNU LGPL license by gun.org
4  * more details please visit http://www.huihoo.org/jfox
5  */

6 package org.jfox.ejb.meta;
7
8 import java.util.ArrayList JavaDoc;
9 import java.util.Iterator JavaDoc;
10 import java.util.List JavaDoc;
11
12 import org.jfox.ioc.util.XMLUtils;
13 import org.w3c.dom.Element JavaDoc;
14 import org.w3c.dom.Node JavaDoc;
15
16 /**
17  * @author <a HREF="mailto:young_yy@hotmail.com">Young Yang</a>
18  */

19
20 public class ContainerTransactionDescriptor extends Descriptor {
21     private EJBBundle ejbBundle;
22     private byte transactionAttr;
23     private List JavaDoc methods = new ArrayList JavaDoc();
24
25     public ContainerTransactionDescriptor(EJBBundle ejbBundle) {
26         this.ejbBundle = ejbBundle;
27     }
28
29     public void processXML(Node JavaDoc node) throws EJBDescriptionException {
30         super.processXML(node);
31         setTransactionAttr(XMLUtils.getChildNodeValueOf(node, "trans-attribute"));
32         Iterator JavaDoc methodElements = XMLUtils.getElementsByTagName((Element JavaDoc) node, "method");
33         while(methodElements.hasNext()) {
34             Element JavaDoc methodElement = (Element JavaDoc) methodElements.next();
35             MethodDescriptor md = new MethodDescriptor();
36             md.processXML(methodElement);
37             methods.add(md);
38         }
39
40         // add Method Transaction to EJBDescriptor
41
for(int i = 0; i < methods.size(); i++) {
42             MethodDescriptor md = (MethodDescriptor) methods.get(i);
43             EJBDescriptor ejbDesc = ejbBundle.getEjb(md.getEjbName());
44             if(ejbDesc == null)
45                 throw new EJBDescriptionException("Undefined ejb-name \"" + md.getEjbName() + "\"");
46             MethodTransaction mt = new MethodTransaction();
47             mt.setMethod(md);
48             mt.setTransactionAttributeString(getTransactionAttrString());
49             ejbDesc.addMethodTransaction(mt);
50         }
51     }
52
53     public EJBBundle getEjbBundle() {
54         return ejbBundle;
55     }
56
57     public void setEjbBundle(EJBBundle ejbBundle) {
58         this.ejbBundle = ejbBundle;
59     }
60
61     public String JavaDoc getTransactionAttrString() {
62         return TransactionAttribute.getTransactionAttrString(transactionAttr);
63     }
64
65     public void setTransactionAttr(String JavaDoc transactionAttrString) {
66         this.transactionAttr = TransactionAttribute.getTransactionAttribute(transactionAttrString);
67     }
68
69     public List JavaDoc getMethods() {
70         return methods;
71     }
72
73     public void setMethods(List JavaDoc methods) {
74         this.methods = methods;
75     }
76
77     public static void main(String JavaDoc[] args) {
78
79     }
80 }
81
82
Popular Tags