Author: jochen
Date: Fri Aug 12 12:12:33 2005
New Revision: 232358
URL: http://svn.apache.org/viewcvs?rev=232358&view=rev
Log:
Added several methods for modifying and querying a methods signature.
Modified:
webservices/jaxme/branches/b0_5/build.xml
webservices/jaxme/branches/b0_5/src/js/org/apache/ws/jaxme/js/AbstractJavaMethod.java
webservices/jaxme/branches/b0_5/status.xml
Modified: webservices/jaxme/branches/b0_5/build.xml
URL:
http://svn.apache.org/viewcvs/webservices/jaxme/branches/b0_5/build.xml?rev=232358&r1=232357&r2=232358&view=diff
==============================================================================
--- webservices/jaxme/branches/b0_5/build.xml (original)
+++ webservices/jaxme/branches/b0_5/build.xml Fri Aug 12 12:12:33 2005
@@ -14,7 +14,7 @@
* limitations under the License.
-->
<project name="JaxMe" default="all">
- <property name="version" value="0.5"/>
+ <property name="version" value="0.5.1-dev"/>
<property name="debug" value="true"/>
<property name="optimize" value="false"/>
Modified:
webservices/jaxme/branches/b0_5/src/js/org/apache/ws/jaxme/js/AbstractJavaMethod.java
URL:
http://svn.apache.org/viewcvs/webservices/jaxme/branches/b0_5/src/js/org/apache/ws/jaxme/js/AbstractJavaMethod.java?rev=232358&r1=232357&r2=232358&view=diff
==============================================================================
---
webservices/jaxme/branches/b0_5/src/js/org/apache/ws/jaxme/js/AbstractJavaMethod.java
(original)
+++
webservices/jaxme/branches/b0_5/src/js/org/apache/ws/jaxme/js/AbstractJavaMethod.java
Fri Aug 12 12:12:33 2005
@@ -12,191 +12,193 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-
+
*/
package org.apache.ws.jaxme.js;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import java.util.StringTokenizer;
import org.apache.ws.jaxme.js.JavaSource.Protection;
-/**
- * @author <a href="mailto:[EMAIL PROTECTED]">Jochen Wiedmann</a>
+/** Base class of methods, constructors, and the like.
*/
-public abstract class AbstractJavaMethod
- extends ConditionalIndentationJavaSourceObject {
- private List exceptions = new ArrayList();
- private List params = new ArrayList();
- public AbstractJavaMethod(String pName, JavaQName pType,
- Protection pProtection) {
- super(pName, pType, pProtection);
- }
-
- /** <p>Returns whether the method is throwing the given exception.
- * Note that this method doesn't care for inheritance. For example,
- * if the method declares to be throwing an [EMAIL PROTECTED]
java.io.IOException},
- * then the value
<code>isThrowing(java.net.MalformedURLException.class)</code>
- * is still false.</p>
- */
- public boolean isThrowing(JavaQName e) {
- if (e == null) {
- throw new NullPointerException("The exception argument must not be
null.");
- }
- for (Iterator iter = exceptions.iterator(); iter.hasNext(); ) {
- if (e.equals(iter.next())) {
- return true;
- }
- }
- return false;
- }
-
- /** <p>Returns whether the method is throwing the given exception.
- * Note that this method doesn't care for inheritance. For example,
- * if the method declares to be throwing an [EMAIL PROTECTED]
java.io.IOException},
- * then the value
<code>isThrowing(java.net.MalformedURLException.class)</code>
- * is still false.</p>
- */
- public boolean isThrowing(Class e) {
- if (e == null) {
- throw new NullPointerException("The exception argument must not be
null.");
- }
- return isThrowing(JavaQNameImpl.getInstance(e));
- }
-
- /** <p>Adds an exception to this methods list of exceptions.</p>
- *
- * @see #getExceptions
- */
- public void addThrows(JavaQName e) {
- if (e == null) {
- throw new NullPointerException("The exception argument must not be
null.");
- }
- if (!exceptions.contains(e)) {
- exceptions.add(e);
- }
- }
-
- /** <p>Adds an exception to this methods list of exceptions.</p>
- *
- * @see #getExceptions
- */
- public void addThrows(Class e) {
- if (e == null) {
- throw new NullPointerException("The exception argument must not be
null.");
- }
- exceptions.add(JavaQNameImpl.getInstance(e));
- }
-
- /** <p>Adds an exception to this methods list of exceptions.</p>
- *
- * @see #getExceptions
- * @deprecated Use [EMAIL PROTECTED] #addThrows(JavaQName)}
- */
- public void addThrows(String e) {
- exceptions.add(JavaQNameImpl.getInstance(e));
- if (e == null) {
- throw new NullPointerException("The exception argument must not be
null.");
- }
- }
-
-
- /** <p>Adds a parameter that this method takes.</p>
- *
- * @see #getParams
- * @deprecated Use [EMAIL PROTECTED] #addParam(JavaQName, String)}
- */
- public void addParam(String p) {
- if (p == null) {
- throw new NullPointerException("param argument must not be null");
- }
- StringTokenizer st = new StringTokenizer(p);
- if (!st.hasMoreTokens()) {
- throw new IllegalArgumentException("param argument must have two tokens:
type name");
- }
- String type = st.nextToken();
- if (!st.hasMoreTokens()) {
- throw new IllegalArgumentException("param argument must have two tokens:
type name");
- }
- String name = st.nextToken();
- if (st.hasMoreTokens()) {
- throw new IllegalArgumentException("param argument must have exactly two
tokens: type name");
- }
- addParam(type, name);
- }
-
- /** <p>Adds a parameter that this method takes.</p>
- *
- * @see #getParams
- * @deprecated Use [EMAIL PROTECTED] #addParam(JavaQName, String)}
- */
- public void addParam(String p, String v) {
- if (p == null) {
- throw new NullPointerException("param argument must not be null");
- }
- p = p.trim();
- addParam(JavaQNameImpl.getInstance(p), v);
- }
-
- /** <p>Adds a parameter that this method takes.</p>
- *
- * @see #getParams
- * @return An object to use for referencing the parameter inside the method.
- */
- public Parameter addParam(Class p, String v) {
- return addParam(JavaQNameImpl.getInstance(p), v);
- }
-
- /** <p>Adds a parameter that this method takes.</p>
- *
- * @see #getParams
- * @return An object to use for referencing the parameter inside the method.
- */
- public Parameter addParam(JavaQName pType, String pName) {
- if (pType == null) {
- throw new NullPointerException("Type argument must not be null");
- }
- if (pName == null) {
- throw new NullPointerException("Parameter name argument must not be
null");
- }
- Parameter p = new Parameter(pType, pName);
- params.add(p);
- return p;
- }
-
- /** <p>Adds a parameter that this method takes.</p>
- *
- * @see #getParams
- * @return An object to use for referencing the parameter inside the method.
- */
- public Parameter addParam(Parameter pParam) {
- return addParam(pParam.getType(), pParam.getName());
- }
-
- /** <p>Clears the list of parameters.</p>
- */
- public void clearParams() {
- params.clear();
- }
-
- /** <p>Returns the list of exceptions thrown by this method.</p>
- *
- * @see #addThrows(JavaQName)
- */
- public JavaQName[] getExceptions() {
- return (JavaQName[]) exceptions.toArray(new JavaQName[exceptions.size()]);
- }
-
-
- /** <p>Returns the list of parameters that this method takes. Any element
- * in the list is an instance of [EMAIL PROTECTED] Parameter}.</p>
- *
- * @see #addParam(JavaQName, String)
- */
- public Parameter[] getParams() {
- return (Parameter[]) params.toArray(new Parameter[params.size()]);
- }
+public abstract class AbstractJavaMethod extends
ConditionalIndentationJavaSourceObject {
+ private List exceptions = new ArrayList();
+ private List params = new ArrayList();
+
+ protected AbstractJavaMethod(String pName, JavaQName pType,
+ Protection pProtection) {
+ super(pName, pType, pProtection);
+ }
+
+ /** <p>Returns whether the method is throwing the given exception.
+ * Note that this method doesn't care for inheritance. For example,
+ * if the method declares to be throwing an [EMAIL PROTECTED]
java.net.MalformedURLException},
+ * then the value <code>isThrowing(java.io.IOException.class)</code>
+ * is still false.</p>
+ */
+ public boolean isThrowing(JavaQName e) {
+ if (e == null) {
+ throw new NullPointerException("The exception argument
must not be null.");
+ }
+ for (Iterator iter = exceptions.iterator(); iter.hasNext(); )
{
+ if (e.equals(iter.next())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /** <p>Returns whether the method is throwing the given exception.
+ * Note that this method doesn't care for inheritance. For example,
+ * if the method declares to be throwing an [EMAIL PROTECTED]
java.net.MalformedURLException},
+ * then the value <code>isThrowing(java.io.IOException.class)</code>
+ * is still false.</p>
+ */
+ public boolean isThrowing(Class e) {
+ if (e == null) {
+ throw new NullPointerException("The exception argument
must not be null.");
+ }
+ return isThrowing(JavaQNameImpl.getInstance(e));
+ }
+
+ /** <p>Adds an exception to this methods list of exceptions.</p>
+ *
+ * @see #getExceptions
+ */
+ public void addThrows(JavaQName e) {
+ if (e == null) {
+ throw new NullPointerException("The exception argument
must not be null.");
+ }
+ if (!exceptions.contains(e)) {
+ exceptions.add(e);
+ }
+ }
+
+ /** <p>Adds an exception to this methods list of exceptions.</p>
+ *
+ * @see #getExceptions
+ */
+ public void addThrows(Class e) {
+ if (e == null) {
+ throw new NullPointerException("The exception argument
must not be null.");
+ }
+ exceptions.add(JavaQNameImpl.getInstance(e));
+ }
+
+ /** <p>Adds a parameter that this method takes.</p>
+ *
+ * @see #getParams
+ * @return An object to use for referencing the parameter inside the
method.
+ */
+ public Parameter addParam(Class p, String v) {
+ return addParam(JavaQNameImpl.getInstance(p), v);
+ }
+
+ /** <p>Adds a parameter that this method takes.</p>
+ *
+ * @see #getParams
+ * @return An object to use for referencing the parameter inside the
method.
+ */
+ public Parameter addParam(JavaQName pType, String pName) {
+ if (pType == null) {
+ throw new NullPointerException("Type argument must not
be null");
+ }
+ if (pName == null) {
+ throw new NullPointerException("Parameter name argument
must not be null");
+ }
+ for (Iterator iter = params.iterator(); iter.hasNext();) {
+ Parameter param = (Parameter) iter.next();
+ if (param.getName().equals(pName)) {
+ throw new IllegalArgumentException("Parameter
name '" + pName + "' is already used for a parameter of type " +
param.getType());
+ }
+ }
+ Parameter p = new Parameter(pType, pName);
+ params.add(p);
+ return p;
+ }
+
+ /** <p>Adds a parameter that this method takes.</p>
+ *
+ * @see #getParams
+ * @return An object to use for referencing the parameter inside the
method.
+ */
+ public Parameter addParam(Parameter pParam) {
+ return addParam(pParam.getType(), pParam.getName());
+ }
+
+ /** <p>Clears the list of parameters.</p>
+ */
+ public void clearParams() {
+ params.clear();
+ }
+
+ /** <p>Returns the list of exceptions thrown by this method.</p>
+ *
+ * @see #addThrows(JavaQName)
+ */
+ public JavaQName[] getExceptions() {
+ return (JavaQName[]) exceptions.toArray(new
JavaQName[exceptions.size()]);
+ }
+
+
+ /** <p>Returns the list of parameters that this method takes. Any
element
+ * in the list is an instance of [EMAIL PROTECTED] Parameter}.</p>
+ *
+ * @return the list of parameters
+ * @see #addParam(JavaQName, String)
+ */
+ public Parameter[] getParams() {
+ return (Parameter[]) params.toArray(new
Parameter[params.size()]);
+ }
+
+ /** <p>Returns a list of the parameter names that this method takes.
Any element
+ * in the list is an instance of [EMAIL PROTECTED]
java.lang.String}.</p>
+ *
+ * @return the list of parameter names
+ * @see #addParam(JavaQName, String)
+ */
+ public String[] getParamNames() {
+ String[] res = new String[params.size()];
+ for (int i = 0; i < params.size(); i++) {
+ res[i++] = ((Parameter) params.get(i)).getName();
+ }
+ return res;
+ }
+
+ /** <p>Returns an array of the parameter types that this method takes.
This array can be used for JavaSource.getMethod() or
JavaSource.getConstructor().</p>
+ *
+ * @return the list of parameter types
+ * @see #addParam(JavaQName, String)
+ */
+ public JavaQName[] getParamTypes() {
+ JavaQName[] res = new JavaQName[params.size()];
+ for (int i = 0; i < params.size(); i++) {
+ res[i++] = ((Parameter) params.get(i)).getType();
+ }
+ return res;
+ }
+
+ /** <p>Removes an exception from this methods list of exceptions, if it
is declared to be thrown.</p>
+ * @param exc the exception to be removed
+ */
+ public void removeThrows(JavaQName exc) {
+ exceptions.remove(exc);
+ }
+
+ /** <p>Removes an exception from this methods list of exceptions, if it
is declared to be thrown.</p>
+ * @param exc the exception to be removed
+ */
+ public void removeThrows(Class exc) {
+ removeThrows(JavaQNameImpl.getInstance(exc));
+ }
+
+ /** <p>Clears the list of thrown exceptions.</p>
+ */
+ public void clearThrows() {
+ exceptions.clear();
+ }
}
Modified: webservices/jaxme/branches/b0_5/status.xml
URL:
http://svn.apache.org/viewcvs/webservices/jaxme/branches/b0_5/status.xml?rev=232358&r1=232357&r2=232358&view=diff
==============================================================================
--- webservices/jaxme/branches/b0_5/status.xml (original)
+++ webservices/jaxme/branches/b0_5/status.xml Fri Aug 12 12:12:33 2005
@@ -30,7 +30,14 @@
</todo>
<changes>
- <release version="0.5" date="Not yet published">
+ <release version="0.5.1-dev" date="Not yet published">
+ <action dev="JW" type="enhancement" context="js">
+ Added several methods for modifying and querying the
+ methods signature.
+ (Frederic Ahring, fahring at de.ibm.com)
+ </action>
+ </release>
+ <release version="0.5" date="2005-Aug-08">
<action dev="JW" type="enhancement" context="js">
Added JavaSource.getConstructor(JavaQName[]).
(Frederic Ahring, fahring at de.ibm.com)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]