You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jaxme-dev@ws.apache.org by jo...@apache.org on 2005/08/12 21:12:55 UTC
svn commit: r232359 - in /webservices/jaxme/branches/JAXME-28: build.xml
src/js/org/apache/ws/jaxme/js/AbstractJavaMethod.java status.xml
Author: jochen
Date: Fri Aug 12 12:12:47 2005
New Revision: 232359
URL: http://svn.apache.org/viewcvs?rev=232359&view=rev
Log:
Added several methods for modifying and querying a methods signature.
Modified:
webservices/jaxme/branches/JAXME-28/build.xml
webservices/jaxme/branches/JAXME-28/src/js/org/apache/ws/jaxme/js/AbstractJavaMethod.java
webservices/jaxme/branches/JAXME-28/status.xml
Modified: webservices/jaxme/branches/JAXME-28/build.xml
URL: http://svn.apache.org/viewcvs/webservices/jaxme/branches/JAXME-28/build.xml?rev=232359&r1=232358&r2=232359&view=diff
==============================================================================
--- webservices/jaxme/branches/JAXME-28/build.xml (original)
+++ webservices/jaxme/branches/JAXME-28/build.xml Fri Aug 12 12:12:47 2005
@@ -14,7 +14,7 @@
* limitations under the License.
-->
<project name="JaxMe" default="all">
- <property name="version" value="0.5beta"/>
+ <property name="version" value="0.6-dev"/>
<property name="debug" value="true"/>
<property name="optimize" value="false"/>
Modified: webservices/jaxme/branches/JAXME-28/src/js/org/apache/ws/jaxme/js/AbstractJavaMethod.java
URL: http://svn.apache.org/viewcvs/webservices/jaxme/branches/JAXME-28/src/js/org/apache/ws/jaxme/js/AbstractJavaMethod.java?rev=232359&r1=232358&r2=232359&view=diff
==============================================================================
--- webservices/jaxme/branches/JAXME-28/src/js/org/apache/ws/jaxme/js/AbstractJavaMethod.java (original)
+++ webservices/jaxme/branches/JAXME-28/src/js/org/apache/ws/jaxme/js/AbstractJavaMethod.java Fri Aug 12 12:12:47 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:joe@ispsoft.de">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 {@link 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 {@link 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 {@link #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 {@link #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 {@link #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 {@link 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 {@link 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 {@link 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 {@link 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 {@link 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/JAXME-28/status.xml
URL: http://svn.apache.org/viewcvs/webservices/jaxme/branches/JAXME-28/status.xml?rev=232359&r1=232358&r2=232359&view=diff
==============================================================================
--- webservices/jaxme/branches/JAXME-28/status.xml (original)
+++ webservices/jaxme/branches/JAXME-28/status.xml Fri Aug 12 12:12:47 2005
@@ -30,7 +30,14 @@
</todo>
<changes>
- <release version="0.5" date="Not yet published">
+ <release version="0.6-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: jaxme-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: jaxme-dev-help@ws.apache.org