KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openejb > alt > assembler > classic > xml > Method


1 /**
2  * Redistribution and use of this software and associated documentation
3  * ("Software"), with or without modification, are permitted provided
4  * that the following conditions are met:
5  *
6  * 1. Redistributions of source code must retain copyright
7  * statements and notices. Redistributions must also contain a
8  * copy of this document.
9  *
10  * 2. Redistributions in binary form must reproduce the
11  * above copyright notice, this list of conditions and the
12  * following disclaimer in the documentation and/or other
13  * materials provided with the distribution.
14  *
15  * 3. The name "Exolab" must not be used to endorse or promote
16  * products derived from this Software without prior written
17  * permission of Exoffice Technologies. For written permission,
18  * please contact info@exolab.org.
19  *
20  * 4. Products derived from this Software may not be called "Exolab"
21  * nor may "Exolab" appear in their names without prior written
22  * permission of Exoffice Technologies. Exolab is a registered
23  * trademark of Exoffice Technologies.
24  *
25  * 5. Due credit should be given to the Exolab Project
26  * (http://www.exolab.org/).
27  *
28  * THIS SOFTWARE IS PROVIDED BY EXOFFICE TECHNOLOGIES AND CONTRIBUTORS
29  * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
30  * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
31  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
32  * EXOFFICE TECHNOLOGIES OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
33  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
37  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
39  * OF THE POSSIBILITY OF SUCH DAMAGE.
40  *
41  * Copyright 1999 (C) Exoffice Technologies Inc. All Rights Reserved.
42  *
43  * $Id: Method.java 1921 2005-06-19 22:40:34Z jlaskowski $
44  */

45
46 package org.openejb.alt.assembler.classic.xml;
47
48
49 import org.openejb.OpenEJBException;
50 import org.openejb.alt.assembler.classic.MethodInfo;
51 import org.w3c.dom.Node JavaDoc;
52
53 /**
54  * A subclass of MethodInfo filled with data from an XML file.
55  *
56  * Populates the member variables of MethodInfo in this classes initializeFromDOM method.
57  *
58  * @author <a HREF="mailto:david.blevins@visi.com">David Blevins</a>
59  * @author <a HREF="mailto:Richard@Monson-Haefel.com">Richard Monson-Haefel</a>
60  * @see org.openejb.alt.assembler.classic.MethodInfo
61  */

62 public class Method extends MethodInfo implements DomObject{
63
64     /**
65      * Represents the <tt>description</tt> element in the XML config file.
66      */

67     public static final String JavaDoc DESCRIPTION = "description";
68
69     /**
70      * Represents the <tt>ejb-deployment-id</tt> element in the XML config file.
71      */

72     public static final String JavaDoc EJB_DEPLOYMENT_ID = "ejb-deployment-id";
73
74     /**
75      * Represents the <tt>method-intf</tt> element in the XML config file.
76      */

77     public static final String JavaDoc METHOD_INTF = "method-intf";
78
79     /**
80      * Represents the <tt>method-name</tt> element in the XML config file.
81      */

82     public static final String JavaDoc METHOD_NAME = "method-name";
83
84     /**
85      * Represents the <tt>method-params</tt> element in the XML config file.
86      */

87     public static final String JavaDoc METHOD_PARAMS = "method-params";
88
89     /**
90      * Represents the <tt>method-param</tt> element in the XML config file.
91      */

92     public static final String JavaDoc METHOD_PARAM = "method-param";
93
94     /**
95      * Parses out the values needed by this DomObject from the DOM Node passed in.
96      * @see org.w3c.dom.Node
97      */

98     public void initializeFromDOM(Node JavaDoc node) throws OpenEJBException{
99         description = DomTools.getChildElementPCData(node, DESCRIPTION);
100         ejbDeploymentId = DomTools.getChildElementPCData(node, EJB_DEPLOYMENT_ID);
101         methodIntf = DomTools.getChildElementPCData(node, METHOD_INTF);
102         methodName = DomTools.getChildElementPCData(node, METHOD_NAME);
103
104         Node JavaDoc methodParamsElement = DomTools.getChildElement(node, METHOD_PARAMS);
105         if (methodParamsElement == null) methodParams = null;
106         else{
107             methodParams = DomTools.getChildElementsPCData(methodParamsElement, METHOD_PARAM);
108           //String[] methodParamNames = DomTools.getChildElementsPCData(methodParamsElement, METHOD_PARAM);
109
//methodParams = new Class[methodParamNames.length];
110
//try{
111
// for (int i=0; i< methodParamNames.length; i++)
112
// methodParams[i] = getClassForParam(methodParamNames[i]);
113
//
114
//
115
//}catch (Exception e) {throw new RuntimeException(e.getMessage());}
116
}
117
118
119     }
120
121     public void serializeToDOM(Node JavaDoc node) throws OpenEJBException{}
122
123
124     /**
125      * Return the correct Class object. Either use forName or
126      * return a primitive TYPE Class.
127      */

128     private java.lang.Class JavaDoc getClassForParam(java.lang.String JavaDoc className)
129       throws Exception JavaDoc {
130        
131       // Test if the name is a primitive type name
132
if(className.equals("int")) {
133         return java.lang.Integer.TYPE;
134       }
135       else if(className.equals("double")) {
136         return java.lang.Double.TYPE;
137       }
138       else if(className.equals("long")) {
139         return java.lang.Long.TYPE;
140       }
141       else if(className.equals("boolean")) {
142         return java.lang.Boolean.TYPE;
143       }
144       else if(className.equals("float")) {
145         return java.lang.Float.TYPE;
146       }
147       else if(className.equals("char")) {
148         return java.lang.Character.TYPE;
149       }
150       else if(className.equals("short")) {
151         return java.lang.Short.TYPE;
152       }
153       else if(className.equals("byte")) {
154         return java.lang.Byte.TYPE;
155       }
156       else return Class.forName(className);
157                 
158     }
159 }
160
Popular Tags