HandlerDesc.java

00001 
00027 package org.objectweb.jonas_lib.deployment.api;
00028 
00029 import java.util.Hashtable;
00030 import java.util.List;
00031 import java.util.Map;
00032 import java.util.Vector;
00033 
00034 import javax.xml.namespace.QName;
00035 
00036 import org.objectweb.jonas_lib.deployment.xml.InitParam;
00037 import org.objectweb.jonas_lib.deployment.xml.Handler;
00038 
00039 
00051 public class HandlerDesc {
00052 
00054     private String name;
00055 
00057     private String className;
00058 
00060     private Class clazz;
00061 
00063     private Map params = new Hashtable();
00064 
00066     private List headers = new Vector();
00067 
00069     private List roles = new Vector();
00070 
00072     private List portNames = new Vector();
00073 
00083     public HandlerDesc(ClassLoader classLoader, Handler handler)
00084         throws DeploymentDescException {
00085 
00086         name = handler.getHandlerName();
00087 
00088         className = handler.getHandlerClass();
00089 
00090         try {
00091             clazz = classLoader.loadClass(className);
00092         } catch (ClassNotFoundException e) {
00093             throw new DeploymentDescException("handler class not found", e);
00094         }
00095 
00096         // fill init params table
00097         List iparams = handler.getInitParamList();
00098         try {
00099             for (int i = 0; i < iparams.size(); i++) {
00100                 // add in params table each init parameter name and associated value
00101                 InitParam p = (InitParam) iparams.get(i);
00102 
00103                 if (p != null) {
00104                     params.put(p.getParamName(), p.getParamValue());
00105                 }
00106             }
00107         } catch (NullPointerException e) {
00108             throw new DeploymentDescException("parameter name missing", e);
00109         }
00110 
00111         // fill headers a list containing soap header QNames
00112         List shl = handler.getSoapHeaderList();
00113         for (int i = 0; i < shl.size(); i++) {
00114             // build qnames and add it in the table
00115             org.objectweb.jonas_lib.deployment.xml.Qname sh = (org.objectweb.jonas_lib.deployment.xml.Qname) shl.get(i);
00116 
00117             if (sh != null) {
00118                 QName qn = sh.getQName();
00119                 headers.add(qn);
00120             }
00121         }
00122 
00123         // fill roles a list containing soap role names
00124         List srl = handler.getSoapRoleList();
00125         for (int i = 0; i < srl.size(); i++) {
00126             String role = (String) srl.get(i);
00127             if (role != null) {
00128                 roles.add(role);
00129             }
00130         }
00131 
00132         // fill portNames a list containing ports names
00133         List pnl = handler.getPortNameList();
00134         for (int i = 0; i < pnl.size(); i++) {
00135             String pn = (String) pnl.get(i);
00136             if (pn != null) {
00137                 portNames.add(pn);
00138             }
00139         }
00140     }
00141 
00147     public String getName() {
00148         return name;
00149     }
00150 
00151 
00157     public String getHandlerClassName() {
00158         return className;
00159     }
00160 
00166     public Class getHandlerClass() {
00167         return clazz;
00168     }
00169 
00175     public Map getInitParams() {
00176         return params;
00177     }
00178 
00186     public String getInitParam(String pname) {
00187         return (String) params.get(pname);
00188     }
00189 
00195     public List getSOAPHeaders() {
00196         return headers;
00197     }
00198 
00205     public List getSOAPRoles() {
00206         return roles;
00207     }
00208 
00215     public List getPortNames() {
00216         return portNames;
00217     }
00218 
00226     public boolean equals(Object other) {
00227         if (other == null) {
00228             return false;
00229         }
00230         if (!(other instanceof HandlerDesc)) {
00231             return false;
00232         }
00233         HandlerDesc ref = (HandlerDesc) other;
00234         if (!name.equals(ref.getName())) {
00235             return false;
00236         }
00237         if (!clazz.getName().equals(ref.getHandlerClass().getName())) {
00238             return false;
00239         }
00240         if (!params.equals(ref.getInitParams())) {
00241             return false;
00242         }
00243         if (!headers.equals(ref.getSOAPHeaders())) {
00244             return false;
00245         }
00246         if (!roles.equals(ref.getSOAPRoles())) {
00247             return false;
00248         }
00249         if (!portNames.equals(ref.getPortNames())) {
00250             return false;
00251         }
00252         // After all theses tests, the 2 objects are equals in value
00253         return true;
00254     }
00255 
00259     public String toString() {
00260         StringBuffer sb = new StringBuffer();
00261         sb.append("\n" + getClass().getName());
00262         sb.append("\ngetName()=" + getName());
00263         sb.append("\ngetClassname()=" + getHandlerClassName());
00264         sb.append("\ngetSOAPRoles()=" + getSOAPRoles());
00265         sb.append("\ngetSOAPHeaders()=" + getSOAPHeaders());
00266         sb.append("\ngetInitParams()=" + getInitParams());
00267         sb.append("\ngetPortNames()=" + getPortNames());
00268         return sb.toString();
00269     }
00270 
00271 }

Generated on Tue Feb 15 15:05:50 2005 for JOnAS by  doxygen 1.3.9.1