1 6 package org.jfox.ejb.meta; 7 8 import java.util.ArrayList ; 9 import java.util.Iterator ; 10 import java.util.List ; 11 12 import org.jfox.ioc.util.XMLUtils; 13 import org.w3c.dom.Element ; 14 import org.w3c.dom.Node ; 15 16 19 20 public class ContainerTransactionDescriptor extends Descriptor { 21 private EJBBundle ejbBundle; 22 private byte transactionAttr; 23 private List methods = new ArrayList (); 24 25 public ContainerTransactionDescriptor(EJBBundle ejbBundle) { 26 this.ejbBundle = ejbBundle; 27 } 28 29 public void processXML(Node node) throws EJBDescriptionException { 30 super.processXML(node); 31 setTransactionAttr(XMLUtils.getChildNodeValueOf(node, "trans-attribute")); 32 Iterator methodElements = XMLUtils.getElementsByTagName((Element ) node, "method"); 33 while(methodElements.hasNext()) { 34 Element methodElement = (Element ) methodElements.next(); 35 MethodDescriptor md = new MethodDescriptor(); 36 md.processXML(methodElement); 37 methods.add(md); 38 } 39 40 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 getTransactionAttrString() { 62 return TransactionAttribute.getTransactionAttrString(transactionAttr); 63 } 64 65 public void setTransactionAttr(String transactionAttrString) { 66 this.transactionAttr = TransactionAttribute.getTransactionAttribute(transactionAttrString); 67 } 68 69 public List getMethods() { 70 return methods; 71 } 72 73 public void setMethods(List methods) { 74 this.methods = methods; 75 } 76 77 public static void main(String [] args) { 78 79 } 80 } 81 82 | Popular Tags |