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