package org.jfox.ejb.meta;
import java.net.URL;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.List;
import java.util.ArrayList;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
public class EJBBundle extends Descriptor {
private String displayName;
private String smallIcon;
private String largeIcon;
private Map ejbs = new HashMap();
public EJBBundle(URL ejbJarUrl) throws EJBDescriptionException {
Element docElement = EjbJarDocumentBuilder.getEjbJarDocument(ejbJarUrl);
processXML(docElement);
}
public void processXML(Node node) throws EJBDescriptionException {
super.processXML(node);
setDisplayName(XmlUtil.getChildNodeValueOf(node,"display-name"));
setSmallIcon(XmlUtil.getChildNodeValueOf(node,"small-icon"));
setLargeIcon(XmlUtil.getChildNodeValueOf(node,"large-icon"));
Iterator sessionBeans = XmlUtil.getElementsByTagName((Element)node,"session");
while(sessionBeans.hasNext()){
Element session = (Element)sessionBeans.next();
SessionBeanDescriptor sbd = new SessionBeanDescriptor();
sbd.processXML(session);
addEjb(sbd);
}
Iterator cmts = XmlUtil.getElementsByTagName((Element)node,"container-transaction");
while(cmts.hasNext()){
Element cmt = (Element)cmts.next();
ContainerTransactionDescriptor ctd = new ContainerTransactionDescriptor(this);
ctd.processXML(cmt);
}
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public String getSmallIcon() {
return smallIcon;
}
public void setSmallIcon(String smallIcon) {
this.smallIcon = smallIcon;
}
public String getLargeIcon() {
return largeIcon;
}
public void setLargeIcon(String largeIcon) {
this.largeIcon = largeIcon;
}
private void addEjb(EJBDescriptor ejbDesc) {
ejbDesc.setEJBBundle(this);
ejbs.put(ejbDesc.getEjbName(),ejbDesc);
}
public EJBDescriptor getEjb(String ejbName) {
return (EJBDescriptor)ejbs.get(ejbName);
}
public List getEjbs() {
return Collections.unmodifiableList(new ArrayList(ejbs.values()));
}
public static void main(String[] args) {
}
}