You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ba...@apache.org on 2006/12/20 01:46:13 UTC
svn commit: r488872 - in /webservices/axis2/trunk/java/modules/metadata:
src/org/apache/axis2/jaxws/description/builder/ParameterDescriptionComposite.java
test/org/apache/axis2/jaxws/description/builder/ParameterParsingTests.java
Author: barrettj
Date: Tue Dec 19 16:46:12 2006
New Revision: 488872
URL: http://svn.apache.org/viewvc?view=rev&rev=488872
Log:
Support encoded names for primitives in ParameterDescriptionComposite. For example "int" can also be "I"; the encodings are the same as used for primitive array encodings described in Class.getName()
Modified:
webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/builder/ParameterDescriptionComposite.java
webservices/axis2/trunk/java/modules/metadata/test/org/apache/axis2/jaxws/description/builder/ParameterParsingTests.java
Modified: webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/builder/ParameterDescriptionComposite.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/builder/ParameterDescriptionComposite.java?view=diff&rev=488872&r1=488871&r2=488872
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/builder/ParameterDescriptionComposite.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/src/org/apache/axis2/jaxws/description/builder/ParameterDescriptionComposite.java Tue Dec 19 16:46:12 2006
@@ -284,19 +284,30 @@
}
private static final String INT_PRIMITIVE = "int";
+ private static final String INT_PRIMITIVE_ENCODING = "I";
private static final String BYTE_PRIMITIVE = "byte";
+ private static final String BYTE_PRIMITIVE_ENCODING = "B";
private static final String CHAR_PRIMITIVE = "char";
+ private static final String CHAR_PRIMITIVE_ENCODING = "C";
private static final String SHORT_PRIMITIVE = "short";
+ private static final String SHORT_PRIMITIVE_ENCODING = "S";
private static final String BOOLEAN_PRIMITIVE = "boolean";
+ private static final String BOOLEAN_PRIMITIVE_ENCODING = "Z";
private static final String LONG_PRIMITIVE = "long";
+ private static final String LONG_PRIMITIVE_ENCODING = "J";
private static final String FLOAT_PRIMITIVE = "float";
+ private static final String FLOAT_PRIMITIVE_ENCODING = "F";
private static final String DOUBLE_PRIMITIVE = "double";
+ private static final String DOUBLE_PRIMITIVE_ENCODING = "D";
private static final String VOID_PRIMITIVE = "void";
+ // REVIEW: This may not be the correct encoding for Void
+ private static final String VOID_PRIMITIVE_ENCODING = "V";
/**
* For primitives, return the appropriate primitive class. Note that arrays of primitives are
* handled differently, like arrays of objects. Only non-array primitives are processed by this
- * method.
+ * method. This method understands both the typical primitive declaration (e.g. "int") and the
+ * encoding used as for arrays (e.g. "I").
* @param classType
* @return
*/
@@ -304,23 +315,23 @@
Class paramClass = null;
- if (INT_PRIMITIVE.equals(classType)) {
+ if (INT_PRIMITIVE.equals(classType) || INT_PRIMITIVE_ENCODING.equals(classType)) {
paramClass = int.class;
- } else if (BYTE_PRIMITIVE.equals(classType)) {
+ } else if (BYTE_PRIMITIVE.equals(classType)|| BYTE_PRIMITIVE_ENCODING.equals(classType)) {
paramClass = byte.class;
- } else if (CHAR_PRIMITIVE.equals(classType)) {
+ } else if (CHAR_PRIMITIVE.equals(classType)|| CHAR_PRIMITIVE_ENCODING.equals(classType)) {
paramClass = char.class;
- } else if (SHORT_PRIMITIVE.equals(classType)) {
+ } else if (SHORT_PRIMITIVE.equals(classType)|| SHORT_PRIMITIVE_ENCODING.equals(classType)) {
paramClass = short.class;
- } else if (BOOLEAN_PRIMITIVE.equals(classType)) {
+ } else if (BOOLEAN_PRIMITIVE.equals(classType)|| BOOLEAN_PRIMITIVE_ENCODING.equals(classType)) {
paramClass = boolean.class;
- } else if (LONG_PRIMITIVE.equals(classType)) {
+ } else if (LONG_PRIMITIVE.equals(classType) || LONG_PRIMITIVE_ENCODING.equals(classType)) {
paramClass = long.class;
- } else if (FLOAT_PRIMITIVE.equals(classType)) {
+ } else if (FLOAT_PRIMITIVE.equals(classType)|| FLOAT_PRIMITIVE_ENCODING.equals(classType)) {
paramClass = float.class;
- } else if (DOUBLE_PRIMITIVE.equals(classType)) {
+ } else if (DOUBLE_PRIMITIVE.equals(classType)|| DOUBLE_PRIMITIVE_ENCODING.equals(classType)) {
paramClass = double.class;
- } else if (VOID_PRIMITIVE.equals(classType)) {
+ } else if (VOID_PRIMITIVE.equals(classType)|| VOID_PRIMITIVE_ENCODING.equals(classType)) {
paramClass = void.class;
}
return paramClass;
@@ -339,28 +350,28 @@
String encoding = null;
if (BOOLEAN_PRIMITIVE.equals(primitiveType)) {
- encoding = "Z";
+ encoding = BOOLEAN_PRIMITIVE_ENCODING;
}
else if (BYTE_PRIMITIVE.equals(primitiveType)) {
- encoding = "B";
+ encoding = BYTE_PRIMITIVE_ENCODING;
}
else if (CHAR_PRIMITIVE.equals(primitiveType)) {
- encoding = "C";
+ encoding = CHAR_PRIMITIVE_ENCODING;
}
else if (DOUBLE_PRIMITIVE.equals(primitiveType)) {
- encoding = "D";
+ encoding = DOUBLE_PRIMITIVE_ENCODING;
}
else if (FLOAT_PRIMITIVE.equals(primitiveType)) {
- encoding = "F";
+ encoding = FLOAT_PRIMITIVE_ENCODING;
}
else if (INT_PRIMITIVE.equals(primitiveType)) {
- encoding = "I";
+ encoding = INT_PRIMITIVE_ENCODING;
}
else if (LONG_PRIMITIVE.equals(primitiveType)) {
- encoding = "J";
+ encoding = LONG_PRIMITIVE_ENCODING;
}
else if (SHORT_PRIMITIVE.equals(primitiveType)) {
- encoding = "S";
+ encoding = SHORT_PRIMITIVE_ENCODING;
}
return encoding;
}
Modified: webservices/axis2/trunk/java/modules/metadata/test/org/apache/axis2/jaxws/description/builder/ParameterParsingTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/metadata/test/org/apache/axis2/jaxws/description/builder/ParameterParsingTests.java?view=diff&rev=488872&r1=488871&r2=488872
==============================================================================
--- webservices/axis2/trunk/java/modules/metadata/test/org/apache/axis2/jaxws/description/builder/ParameterParsingTests.java (original)
+++ webservices/axis2/trunk/java/modules/metadata/test/org/apache/axis2/jaxws/description/builder/ParameterParsingTests.java Tue Dec 19 16:46:12 2006
@@ -100,9 +100,22 @@
assertEquals(List.class, pdc.getHolderActualTypeClass());
}
+ public void testPrimitivesEncoded() {
+ String[] primitivesToTest = {"Z", "B", "C", "D", "F", "I", "J", "S", "V"};
+ Class[] primitiveClasses = {boolean.class, byte.class, char.class, double.class, float.class, int.class, long.class, short.class, void.class};
+
+ for (int i = 0; i < primitivesToTest.length; i++) {
+ assertFalse(ParameterDescriptionComposite.isHolderType(primitivesToTest[i]));
+ assertNull(ParameterDescriptionComposite.getRawType(primitivesToTest[i]));
+ ParameterDescriptionComposite pdc = new ParameterDescriptionComposite();
+ pdc.setParameterType(primitivesToTest[i]);
+ assertEquals(primitiveClasses[i], pdc.getParameterTypeClass());
+ }
+ }
+
public void testPrimitives() {
- String[] primitivesToTest = {"boolean", "byte", "char", "double", "float", "int", "long", "short"};
- Class[] primitiveClasses = {boolean.class, byte.class, char.class, double.class, float.class, int.class, long.class, short.class};
+ String[] primitivesToTest = {"boolean", "byte", "char", "double", "float", "int", "long", "short", "void"};
+ Class[] primitiveClasses = {boolean.class, byte.class, char.class, double.class, float.class, int.class, long.class, short.class, void.class};
for (int i = 0; i < primitivesToTest.length; i++) {
assertFalse(ParameterDescriptionComposite.isHolderType(primitivesToTest[i]));
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org