You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by pr...@apache.org on 2008/01/15 17:22:27 UTC
svn commit: r612147 [4/17] - in /webservices/axis2/branches/java/jaxws21: ./
modules/adb-codegen/ modules/adb-codegen/src/org/apache/axis2/schema/
modules/adb-codegen/src/org/apache/axis2/schema/template/
modules/adb-codegen/src/org/apache/axis2/schema...
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/CTypeMap.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/CTypeMap.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/CTypeMap.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/CTypeMap.java Tue Jan 15 08:21:22 2008
@@ -18,20 +18,260 @@
*/
package org.apache.axis2.schema.typemap;
-import org.apache.axis2.wsdl.codegen.emitter.CTypeInfo;
+import org.apache.axis2.schema.SchemaConstants;
+import org.apache.axis2.namespace.Constants;
+import java.util.Map;
+import javax.xml.namespace.QName;
+import java.math.BigDecimal;
+import java.util.HashMap;
import java.util.Map;
/**
- * The java type map. uses a static map for caching
- * Most code from Axis 1 Codebase*
- * Most code JavaTypeMap
+ * The C type map. uses a static map for caching
*/
public class CTypeMap implements TypeMap{
- public Map getTypeMap()
- {
- return CTypeInfo.getTypeMap();
+ private static Map typeMap = new HashMap();
+
+ // Type map for the standard schema types
+ public Map getTypeMap(){
+ return typeMap;
}
-}
\ No newline at end of file
+ static {
+ // If SOAP 1.1 over the wire, map wrapper classes to XSD primitives.
+ CTypeMap.addTypemapping(SchemaConstants.XSD_STRING,
+ "axis2_char_t*");
+
+ // The XSD Primitives are mapped to axis2/c primitives.
+ CTypeMap.addTypemapping(SchemaConstants.XSD_BOOLEAN, "axis2_bool_t");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_DOUBLE, "double");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_FLOAT, "float");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_INT, "int");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_INTEGER,
+ "int");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_LONG, "long");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_SHORT, "short");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_BYTE, "axis2_byte_t");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_ANY, "axiom_node_t*");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_DECIMAL, "double");
+
+ CTypeMap.addTypemapping(SchemaConstants.XSD_ANYTYPE,
+ "axiom_node_t*");
+
+ CTypeMap.addTypemapping(SchemaConstants.XSD_QNAME,
+ "axutil_qname_t*");
+
+ CTypeMap.addTypemapping(SchemaConstants.XSD_DATE,
+ "axutil_date_time_t*");
+
+ CTypeMap.addTypemapping(SchemaConstants.XSD_TIME,
+ "axutil_date_time_t*");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_DATETIME,
+ "axutil_date_time_t*");
+
+ CTypeMap.addTypemapping(SchemaConstants.XSD_BASE64,
+ "axutil_base64_binary_t*");
+
+ CTypeMap.addTypemapping(SchemaConstants.XSD_HEXBIN,
+ "axiom_node_t*");
+
+ // These are the g* types (gYearMonth, etc) which map to Axis types
+ // These types are mapped to an integer
+ CTypeMap.addTypemapping(SchemaConstants.XSD_YEARMONTH,
+ "axutil_date_time_t*");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_YEAR,
+ "int");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_MONTH,
+ "int");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_DAY,
+ "int");
+ CTypeMap.addTypemapping(SchemaConstants.XSD_MONTHDAY,
+ "axutil_date_time_t*");
+
+ // xsd:token
+ CTypeMap.addTypemapping(SchemaConstants.XSD_TOKEN, "axis2_char_t*");
+
+ // a xsd:normalizedString
+ CTypeMap.addTypemapping(SchemaConstants.XSD_NORMALIZEDSTRING,
+ "axis2_char_t*");
+
+ // a xsd:unsignedLong
+ CTypeMap.addTypemapping(SchemaConstants.XSD_UNSIGNEDLONG,
+ "unsigned long");
+
+ // a xsd:unsignedInt
+ CTypeMap.addTypemapping(SchemaConstants.XSD_UNSIGNEDINT,
+ "unsigned int");
+
+ // a xsd:unsignedShort
+ CTypeMap.addTypemapping(SchemaConstants.XSD_UNSIGNEDSHORT,
+ "unsigned short");
+
+ // a xsd:unsignedByte
+ CTypeMap.addTypemapping(SchemaConstants.XSD_UNSIGNEDBYTE,
+ "axis2_byte_t");
+
+ // a xsd:nonNegativeInteger
+ CTypeMap.addTypemapping(SchemaConstants.XSD_NONNEGATIVEINTEGER,
+ "unsigned int");
+
+ // a xsd:negativeInteger
+ CTypeMap.addTypemapping(SchemaConstants.XSD_NEGATIVEINTEGER,
+ "int");
+
+ // a xsd:positiveInteger
+ CTypeMap.addTypemapping(SchemaConstants.XSD_POSITIVEINTEGER,
+ "unsigned int");
+
+ // a xsd:nonPositiveInteger
+ CTypeMap.addTypemapping(SchemaConstants.XSD_NONPOSITIVEINTEGER,
+ "unsigned int");
+
+ // a xsd:Name
+ CTypeMap.addTypemapping(SchemaConstants.XSD_NAME, "axis2_char_t*");
+
+ // a xsd:NCName
+ CTypeMap.addTypemapping(SchemaConstants.XSD_NCNAME, "axis2_char_t*");
+
+ // a xsd:ID
+ CTypeMap.addTypemapping(SchemaConstants.XSD_ID, "axis2_char_t*");
+
+ // a xsd:language
+ CTypeMap.addTypemapping(SchemaConstants.XSD_LANGUAGE, "axis2_char_t*");
+
+ // a xsd:NmToken
+ CTypeMap.addTypemapping(SchemaConstants.XSD_NMTOKEN, "axis2_char_t*");
+
+ // a xsd:NmTokens
+ CTypeMap.addTypemapping(SchemaConstants.XSD_NMTOKENS, "axis2_char_t*");
+
+ // a xsd:NOTATION
+ CTypeMap.addTypemapping(SchemaConstants.XSD_NOTATION, "axiom_node_t*");
+
+ // a xsd:XSD_ENTITY
+ CTypeMap.addTypemapping(SchemaConstants.XSD_ENTITY, "axis2_char_t*");
+
+ // a xsd:XSD_ENTITIES
+ CTypeMap.addTypemapping(SchemaConstants.XSD_ENTITIES, "axis2_char_t*");
+
+ // a xsd:XSD_IDREF
+ CTypeMap.addTypemapping(SchemaConstants.XSD_IDREF, "axis2_char_t*");
+
+ // a xsd:XSD_XSD_IDREFS
+ CTypeMap.addTypemapping(SchemaConstants.XSD_IDREFS, "axis2_char_t*");
+
+ // a xsd:Duration
+ CTypeMap.addTypemapping(SchemaConstants.XSD_DURATION, "axutil_duration_t*");
+
+ // a xsd:anyURI
+ CTypeMap.addTypemapping(SchemaConstants.XSD_ANYURI,
+ "axutil_uri_t*");
+ }
+
+ private static void addTypemapping(QName name, String str) {
+ CTypeMap.typeMap.put(name, str);
+ }
+
+ // Type map for the soap encoding types
+ public Map getSoapEncodingTypesMap() {
+ return soapEncodingTypeMap;
+ }
+
+ private static Map soapEncodingTypeMap = new HashMap();
+
+ static {
+ // populate the soapEncodingTypeMap
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ARRAY,
+ "axutil_array_list_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_STRUCT,
+ "axiom_node_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BASE64,
+ "axutil_base64_binary_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DURATION,
+ "axutil_duration_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DATETIME,
+ "axutil_date_time_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NOTATION,
+ "axiom_node_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_TIME,
+ "axutil_date_time_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DATE,
+ "axutil_date_time_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GYEARMONTH,
+ "axutil_date_time_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GYEAR,
+ "int");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GMONTHDAY,
+ "axutil_date_time_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GDAY,
+ "int");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GMONTH,
+ "int");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BOOLEAN,
+ "axis2_bool_t");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BASE64BINARY,
+ "axutil_base64_binary_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_HEXBINARY,
+ "axiom_node_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_FLOAT,
+ "float");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DOUBLE,
+ "double");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ANYURI,
+ "axutil_uri_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_QNAME,
+ "axutil_qname_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_STRING,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NORMALIZEDSTRING,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_TOKEN,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_LANGUAGE,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NAME,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NMTOKEN,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NCNAME,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ID,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_IDREF,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ENTITY,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_IDREFS,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ENTITIES,
+ "axis2_char_t*");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DECIMAL,
+ "double");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_INTEGER,
+ "int");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NONPOSITIVEINTEGER,
+ "int");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NEGATIVEINTEGER,
+ "int");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_LONG,
+ "long");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_INT,
+ "int");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_SHORT,
+ "short");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BYTE,
+ "axis2_byte_t");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NONNEGATIVEINTEGER,
+ "unsigned int");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDLONG,
+ "unsigned long");
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDINT,
+ "unsigned int");
+ }
+
+ private static void addSoapEncodingTypeMapping(QName name, String className) {
+ soapEncodingTypeMap.put(name, className);
+ }
+}
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/JavaTypeMap.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/JavaTypeMap.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/JavaTypeMap.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/JavaTypeMap.java Tue Jan 15 08:21:22 2008
@@ -212,5 +212,113 @@
typeMap.put(name, str);
}
+ public Map getSoapEncodingTypesMap() {
+ return soapEncodingTypeMap;
+ }
+
+ private static Map soapEncodingTypeMap = new HashMap();
+
+ static {
+ // populate the soapEncodingTypeMap
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ARRAY,
+ org.apache.axis2.databinding.types.soapencoding.Array.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_STRUCT,
+ org.apache.axis2.databinding.types.soapencoding.Struct.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BASE64,
+ org.apache.axis2.databinding.types.soapencoding.Base64.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DURATION,
+ org.apache.axis2.databinding.types.soapencoding.Duration.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DATETIME,
+ org.apache.axis2.databinding.types.soapencoding.DateTime.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NOTATION,
+ org.apache.axis2.databinding.types.soapencoding.NOTATION.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_TIME,
+ org.apache.axis2.databinding.types.soapencoding.Time.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DATE,
+ org.apache.axis2.databinding.types.soapencoding.Date.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GYEARMONTH,
+ org.apache.axis2.databinding.types.soapencoding.GYearMonth.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GYEAR,
+ org.apache.axis2.databinding.types.soapencoding.GYear.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GMONTHDAY,
+ org.apache.axis2.databinding.types.soapencoding.GMonthDay.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GDAY,
+ org.apache.axis2.databinding.types.soapencoding.GDay.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GMONTH,
+ org.apache.axis2.databinding.types.soapencoding.GMonth.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BOOLEAN,
+ org.apache.axis2.databinding.types.soapencoding._boolean.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BASE64BINARY,
+ org.apache.axis2.databinding.types.soapencoding.Base64Binary.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_HEXBINARY,
+ org.apache.axis2.databinding.types.soapencoding.HexBinary.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_FLOAT,
+ org.apache.axis2.databinding.types.soapencoding._float.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DOUBLE,
+ org.apache.axis2.databinding.types.soapencoding._double.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ANYURI,
+ org.apache.axis2.databinding.types.soapencoding.AnyURI.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_QNAME,
+ org.apache.axis2.databinding.types.soapencoding.QName.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_STRING,
+ org.apache.axis2.databinding.types.soapencoding.String.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NORMALIZEDSTRING,
+ org.apache.axis2.databinding.types.soapencoding.NormalizedString.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_TOKEN,
+ org.apache.axis2.databinding.types.soapencoding.Token.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_LANGUAGE,
+ org.apache.axis2.databinding.types.soapencoding.Language.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NAME,
+ org.apache.axis2.databinding.types.soapencoding.Name.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NMTOKEN,
+ org.apache.axis2.databinding.types.soapencoding.NMTOKEN.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NCNAME,
+ org.apache.axis2.databinding.types.soapencoding.NCName.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NMTOKENS,
+ org.apache.axis2.databinding.types.soapencoding.NMTOKENS.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ID,
+ org.apache.axis2.databinding.types.soapencoding.ID.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_IDREF,
+ org.apache.axis2.databinding.types.soapencoding.IDREF.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ENTITY,
+ org.apache.axis2.databinding.types.soapencoding.ENTITY.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_IDREFS,
+ org.apache.axis2.databinding.types.soapencoding.IDREFS.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ENTITIES,
+ org.apache.axis2.databinding.types.soapencoding.ENTITIES.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DECIMAL,
+ org.apache.axis2.databinding.types.soapencoding.Decimal.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_INTEGER,
+ org.apache.axis2.databinding.types.soapencoding.Integer.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NONPOSITIVEINTEGER,
+ org.apache.axis2.databinding.types.soapencoding.NonPositiveInteger.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NEGATIVEINTEGER,
+ org.apache.axis2.databinding.types.soapencoding.NegativeInteger.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_LONG,
+ org.apache.axis2.databinding.types.soapencoding._long.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_INT,
+ org.apache.axis2.databinding.types.soapencoding._int.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_SHORT,
+ org.apache.axis2.databinding.types.soapencoding._short.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BYTE,
+ org.apache.axis2.databinding.types.soapencoding._byte.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NONNEGATIVEINTEGER,
+ org.apache.axis2.databinding.types.soapencoding.NonNegativeInteger.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDLONG,
+ org.apache.axis2.databinding.types.soapencoding.UnsignedLong.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDINT,
+ org.apache.axis2.databinding.types.soapencoding.UnsignedInt.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDSHORT,
+ org.apache.axis2.databinding.types.soapencoding.UnsignedShort.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDBYTE,
+ org.apache.axis2.databinding.types.soapencoding.UnsignedByte.class.getName());
+ addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_POSITIVEINTEGER,
+ org.apache.axis2.databinding.types.soapencoding.PositiveInteger.class.getName());
+ }
+
+ private static void addSoapEncodingTypeMapping(QName name, String className) {
+ soapEncodingTypeMap.put(name, className);
+ }
+
}
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/TypeMap.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/TypeMap.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/TypeMap.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/typemap/TypeMap.java Tue Jan 15 08:21:22 2008
@@ -26,4 +26,7 @@
public interface TypeMap {
public Map getTypeMap();
+
+ public Map getSoapEncodingTypesMap();
+
}
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java Tue Jan 15 08:21:22 2008
@@ -74,6 +74,7 @@
*/
public String write(QName qname,
Map typeMap,
+ Map groupTypeMap,
BeanWriterMetaInfoHolder metainf,
boolean isAbstract)
throws SchemaCompilationException;
@@ -87,7 +88,10 @@
* @return Returns String.
* @throws SchemaCompilationException
*/
- public String write(XmlSchemaElement element, Map typeMap, BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException;
+ public String write(XmlSchemaElement element,
+ Map typeMap,
+ Map groupTypeMap,
+ BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException;
/**
@@ -99,7 +103,10 @@
* @return Returns String.
* @throws SchemaCompilationException
*/
- public String write(XmlSchemaSimpleType simpleType, Map typeMap, BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException;
+ public String write(XmlSchemaSimpleType simpleType,
+ Map typeMap,
+ Map groupTypeMap,
+ BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException;
/**
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java Tue Jan 15 08:21:22 2008
@@ -77,10 +77,10 @@
// useful when only a list of external elements need to be processed
public static final String DEFAULT_CLASS_NAME = "axiom_node_t*";
- public static final String DEFAULT_CLASS_ARRAY_NAME = "axis2_array_list_t";
+ public static final String DEFAULT_CLASS_ARRAY_NAME = "axiom_node_t*";
public static final String DEFAULT_ATTRIB_CLASS_NAME = "axiom_attribute_t*";
- public static final String DEFAULT_ATTRIB_ARRAY_CLASS_NAME = "axis2_array_list_t";
+ public static final String DEFAULT_ATTRIB_ARRAY_CLASS_NAME = "axiom_attribute_t*";
@@ -159,12 +159,15 @@
* @throws org.apache.axis2.schema.SchemaCompilationException
*
*/
- public String write(XmlSchemaElement element, Map typeMap, BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException {
+ public String write(XmlSchemaElement element,
+ Map typeMap,
+ Map groupTypeMap,
+ BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException {
try {
QName qName = element.getQName();
- return process(qName, metainf, typeMap, true);
+ return process(qName, metainf, typeMap, groupTypeMap, true, false);
} catch (Exception e) {
throw new SchemaCompilationException(e);
}
@@ -183,13 +186,14 @@
*/
public String write(QName qName,
Map typeMap,
+ Map groupTypeMap,
BeanWriterMetaInfoHolder metainf,
boolean isAbstract)
throws SchemaCompilationException {
try {
//determine the package for this type.
- return process(qName, metainf, typeMap, false);
+ return process(qName, metainf, typeMap, groupTypeMap, false, isAbstract);
} catch (SchemaCompilationException e) {
throw e;
@@ -228,14 +232,18 @@
*
* @see BeanWriter#write(org.apache.ws.commons.schema.XmlSchemaSimpleType, java.util.Map, org.apache.axis2.schema.BeanWriterMetaInfoHolder)
*/
- public String write(XmlSchemaSimpleType simpleType, Map typeMap, BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException {
+ public String write(XmlSchemaSimpleType simpleType,
+ Map typeMap,
+ Map groupTypeMap,
+ BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException {
try {
//determine the package for this type.
QName qName = simpleType.getQName();
if (qName == null) {
qName = (QName) simpleType.getMetaInfoMap().get(SchemaConstants.SchemaCompilerInfoHolder.FAKE_QNAME);
}
- return process(qName, metainf, typeMap, false);
+ metainf.addtStatus(qName, SchemaConstants.SIMPLE_TYPE_OR_CONTENT);
+ return process(qName, metainf, typeMap, groupTypeMap, true, false);
} catch (SchemaCompilationException e) {
throw e;
@@ -288,14 +296,20 @@
* @return Returns String.
* @throws Exception
*/
- private String process(QName qName, BeanWriterMetaInfoHolder metainf, Map typeMap, boolean isElement) throws Exception {
+ private String process(QName qName,
+ BeanWriterMetaInfoHolder metainf,
+ Map typeMap,
+ Map groupTypeMap,
+ boolean isElement,
+ boolean isAbstract)
+ throws Exception {
String fullyQualifiedClassName = metainf.getOwnClassName();
if (fullyQualifiedClassName == null)
fullyQualifiedClassName = makeFullyQualifiedClassName(qName);
String className = fullyQualifiedClassName;
- String originalName = qName.getLocalPart();
+ String originalName = qName == null? "" : qName.getLocalPart();
ArrayList propertyNames = new ArrayList();
if (!templateLoaded) {
@@ -306,19 +320,26 @@
//global class that is generated, one needs to call the writeBatch() method
if (wrapClasses) {
globalWrappedSourceDocument.getDocumentElement().appendChild(
- getBeanElement(globalWrappedSourceDocument, className, originalName, qName, isElement, metainf, propertyNames, typeMap)
- );
+ getBeanElement(globalWrappedSourceDocument, className,
+ originalName, qName, isElement, isAbstract,
+ metainf, propertyNames, typeMap, groupTypeMap));
+
globalWrappedHeaderDocument.getDocumentElement().appendChild(
- getBeanElement(globalWrappedHeaderDocument, className, originalName, qName, isElement, metainf, propertyNames, typeMap)
- );
+ getBeanElement(globalWrappedHeaderDocument, className,
+ originalName, qName, isElement, isAbstract,
+ metainf, propertyNames, typeMap, groupTypeMap));
} else {
//create the model
Document modelSource = XSLTUtils.getDocument();
Document modelHeader = XSLTUtils.getDocument();
//make the XML
- modelSource.appendChild(getBeanElement(modelSource, className, originalName, qName, isElement, metainf, propertyNames, typeMap));
- modelHeader.appendChild(getBeanElement(modelHeader, className, originalName, qName, isElement, metainf, propertyNames, typeMap));
+ modelSource.appendChild(getBeanElement(modelSource, className, originalName,
+ qName, isElement, isAbstract, metainf, propertyNames,
+ typeMap, groupTypeMap));
+ modelHeader.appendChild(getBeanElement(modelHeader, className, originalName,
+ qName, isElement, isAbstract, metainf, propertyNames,
+ typeMap, groupTypeMap));
if (writeClasses) {
//create the file
@@ -363,10 +384,17 @@
*
*/
private Element getBeanElement(
- Document model, String className, String originalName,
- QName qName, boolean isElement,
- BeanWriterMetaInfoHolder metainf, ArrayList propertyNames, Map typeMap
- ) throws SchemaCompilationException {
+ Document model,
+ String className,
+ String originalName,
+ QName qName,
+ boolean isElement,
+ boolean isAbstract,
+ BeanWriterMetaInfoHolder metainf,
+ ArrayList propertyNames,
+ Map typeMap,
+ Map groupTypeMap)
+ throws SchemaCompilationException {
Element rootElt = XSLTUtils.getElement(model, "class");
XSLTUtils.addAttribute(model, "name", className, rootElt);
@@ -384,6 +412,10 @@
XSLTUtils.addAttribute(model, "unwrapped", "yes", rootElt);
}
+ if (isAbstract) {
+ XSLTUtils.addAttribute(model, "isAbstract", "yes", rootElt);
+ }
+
if (!writeClasses) {
XSLTUtils.addAttribute(model, "skip-write", "yes", rootElt);
}
@@ -439,14 +471,14 @@
}
//populate all the information
- populateInfo(metainf, model, rootElt, propertyNames, typeMap, false);
+ populateInfo(metainf, model, rootElt, propertyNames, typeMap, groupTypeMap, false);
if (metainf.isSimple() && metainf.isUnion()) {
populateMemberInfo(metainf, model, rootElt, typeMap);
}
if (metainf.isSimple() && metainf.isList()) {
- populateListInfo(metainf, model, rootElt, typeMap);
+ populateListInfo(metainf, model, rootElt, typeMap, groupTypeMap);
}
return rootElt;
@@ -455,7 +487,8 @@
protected void populateListInfo(BeanWriterMetaInfoHolder metainf,
Document model,
Element rootElement,
- Map typeMap) {
+ Map typeMap,
+ Map groupTypeMap) {
String cName = makeUniqueCStructName(new ArrayList(), metainf.getItemTypeQName().getLocalPart());
Element itemType = XSLTUtils.addChildElement(model, "itemtype", rootElement);
@@ -464,7 +497,8 @@
XSLTUtils.addAttribute(model, "originalName", metainf.getItemTypeQName().getLocalPart(), itemType);
XSLTUtils.addAttribute(model, "cname", cName, itemType);
- if (typeMap.containsKey(metainf.getItemTypeQName())) {
+ if (typeMap.containsKey(metainf.getItemTypeQName()) ||
+ groupTypeMap.containsKey(metainf.getItemTypeClassName())) {
XSLTUtils.addAttribute(model, "ours", "true", itemType);
}
if (PrimitiveTypeFinder.isPrimitive(metainf.getItemTypeClassName())) {
@@ -512,11 +546,15 @@
Document model,
Element rootElt,
ArrayList propertyNames,
- Map typeMap, boolean isInherited) throws SchemaCompilationException {
- if (metainf.getParent() != null) {
- populateInfo(metainf.getParent(), model, rootElt, propertyNames, typeMap, true);
+ Map typeMap,
+ Map groupTypeMap,
+ boolean isInherited) throws SchemaCompilationException {
+ if (metainf.getParent() != null && (!metainf.isRestriction() || (metainf.isRestriction() && metainf.isSimple())))
+ {
+ populateInfo(metainf.getParent(), model, rootElt, propertyNames,
+ typeMap, groupTypeMap, true);
}
- addPropertyEntries(metainf, model, rootElt, propertyNames, typeMap, isInherited);
+ addPropertyEntries(metainf, model, rootElt, propertyNames, typeMap, groupTypeMap, isInherited);
}
@@ -529,8 +567,11 @@
* @throws org.apache.axis2.schema.SchemaCompilationException
- *
*/
- private void addPropertyEntries(BeanWriterMetaInfoHolder metainf, Document model, Element rootElt, ArrayList propertyNames,
+ private void addPropertyEntries(BeanWriterMetaInfoHolder metainf,
+ Document model, Element rootElt,
+ ArrayList propertyNames,
Map typeMap,
+ Map groupTypeMap,
boolean isInherited) throws SchemaCompilationException {
// go in the loop and add the part elements
QName[] qName;
@@ -634,13 +675,6 @@
XSLTUtils.addAttribute(model, "inherited", "yes", property);
}
- QName schemaQName = metainf.getSchemaQNameForQName(name);
- if(!schemaQName.getNamespaceURI().equals(name.getNamespaceURI())){
- XSLTUtils.addAttribute(model, "child-nsuri", schemaQName.getNamespaceURI(), property);
- XSLTUtils.addAttribute(model, "child-nsprefix", getPrefixForURI(schemaQName.getNamespaceURI(), null), property);
-
- }
-
if (metainf.getAnyStatusForQName(name)) {
XSLTUtils.addAttribute(model, "any", "yes", property);
}
@@ -688,6 +722,7 @@
model,
property,
typeMap,
+ groupTypeMap,
CClassNameForElement);
} else {
@@ -697,6 +732,7 @@
model,
property,
typeMap,
+ groupTypeMap,
CClassNameForElement);
}
}
@@ -707,13 +743,15 @@
Document model,
Element property,
Map typeMap,
+ Map groupTypeMap,
String javaClassNameForElement) {
// add an attribute that says the type is default
if (metainf.getDefaultStatusForQName(name)) {
XSLTUtils.addAttribute(model, "default", "yes", property);
}
- if (typeMap.containsKey(metainf.getSchemaQNameForQName(name))) {
+ if (typeMap.containsKey(metainf.getSchemaQNameForQName(name)) ||
+ groupTypeMap.containsKey(metainf.getSchemaQNameForQName(name))) {
XSLTUtils.addAttribute(model, "ours", "yes", property);
}
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java Tue Jan 15 08:21:22 2008
@@ -44,6 +44,8 @@
import java.io.*;
import java.util.*;
+
+
/**
* Java Bean writer for the schema compiler.
*/
@@ -59,6 +61,8 @@
private Templates templateCache;
+ private List nameList;
+
private Map packageNameToClassNamesMap;
private static int count = 0;
@@ -208,13 +212,15 @@
* @return Returns String.
* @throws SchemaCompilationException
*/
- public String write(XmlSchemaElement element, Map typeMap,
+ public String write(XmlSchemaElement element,
+ Map typeMap,
+ Map groupTypeMap,
BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException {
try {
QName qName = element.getQName();
- return process(qName, metainf, typeMap, true, false);
+ return process(qName, metainf, typeMap, groupTypeMap, true, false);
} catch (Exception e) {
e.printStackTrace();
throw new SchemaCompilationException(e);
@@ -233,13 +239,14 @@
*/
public String write(QName qName,
Map typeMap,
+ Map groupTypeMap,
BeanWriterMetaInfoHolder metainf,
boolean isAbstract)
throws SchemaCompilationException {
try {
// determine the package for this type.
- return process(qName, metainf, typeMap, false,isAbstract);
+ return process(qName, metainf, typeMap, groupTypeMap, false,isAbstract);
} catch (SchemaCompilationException e) {
throw e;
@@ -281,10 +288,10 @@
* @param metainf
* @return Returns String.
* @throws SchemaCompilationException
- * @see BeanWriter#write(org.apache.ws.commons.schema.XmlSchemaSimpleType,
- * java.util.Map, org.apache.axis2.schema.BeanWriterMetaInfoHolder)
*/
- public String write(XmlSchemaSimpleType simpleType, Map typeMap,
+ public String write(XmlSchemaSimpleType simpleType,
+ Map typeMap,
+ Map groupTypeMap,
BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException {
try {
QName qName = simpleType.getQName();
@@ -292,7 +299,7 @@
qName = (QName) simpleType.getMetaInfoMap().get(SchemaConstants.SchemaCompilerInfoHolder.FAKE_QNAME);
}
metainf.addtStatus(qName, SchemaConstants.SIMPLE_TYPE_OR_CONTENT);
- return process(qName, metainf, typeMap, true, false);
+ return process(qName, metainf, typeMap, groupTypeMap, true, false);
} catch (Exception e) {
throw new SchemaCompilationException(e);
}
@@ -312,7 +319,7 @@
} else {
this.rootDir = rootDir;
}
-
+ this.nameList = new ArrayList();
this.packageNameToClassNamesMap = new HashMap();
javaBeanTemplateName = SchemaPropertyLoader.getBeanTemplate();
}
@@ -332,12 +339,20 @@
String packageName = getPackage(namespaceURI);
String originalName = qName.getLocalPart();
+ String className = null;
- if (!this.packageNameToClassNamesMap.containsKey(packageName)){
- this.packageNameToClassNamesMap.put(packageName, new ArrayList());
+ // when wrapping classes all the data binding and exception class should have
+ // a unique name since package name is not being applied.
+ // otherewise we can make unique with the package name
+ if (!wrapClasses){
+ className = makeUniqueJavaClassName(this.nameList, originalName);
+ } else {
+ if (!this.packageNameToClassNamesMap.containsKey(packageName)) {
+ this.packageNameToClassNamesMap.put(packageName, new ArrayList());
+ }
+ className = makeUniqueJavaClassName((List) this.packageNameToClassNamesMap.get(packageName), originalName);
}
- String className =
- makeUniqueJavaClassName((List) this.packageNameToClassNamesMap.get(packageName), originalName);
+
String packagePrefix = null;
@@ -386,6 +401,7 @@
private String process(QName qName,
BeanWriterMetaInfoHolder metainf,
Map typeMap,
+ Map groupTypeMap,
boolean isElement,
boolean isAbstract)
throws Exception {
@@ -419,7 +435,7 @@
globalWrappedDocument.getDocumentElement().appendChild(
getBeanElement(globalWrappedDocument, className,
originalName, basePackageName, qName, isElement,isAbstract,
- metainf, propertyNames, typeMap));
+ metainf, propertyNames, typeMap, groupTypeMap));
} else {
// create the model
@@ -427,7 +443,7 @@
// make the XML
model.appendChild(getBeanElement(model, className, originalName,
basePackageName, qName, isElement,isAbstract, metainf, propertyNames,
- typeMap));
+ typeMap, groupTypeMap));
if (writeClasses) {
// create the file
@@ -485,7 +501,8 @@
boolean isAbstract,
BeanWriterMetaInfoHolder metainf,
ArrayList propertyNames,
- Map typeMap)
+ Map typeMap,
+ Map groupTypeMap)
throws SchemaCompilationException {
Element rootElt = XSLTUtils.getElement(model, "bean");
@@ -493,8 +510,7 @@
XSLTUtils.addAttribute(model, "originalName", originalName, rootElt);
XSLTUtils.addAttribute(model, "package", packageName, rootElt);
XSLTUtils.addAttribute(model, "nsuri", qName.getNamespaceURI(), rootElt);
- XSLTUtils.addAttribute(model, "isUseWrapperClasses", isUseWrapperClasses? "yes" : "false", rootElt);
- XSLTUtils.addAttribute(model, "nsprefix", isSuppressPrefixesMode ? "" : getPrefixForURI(qName
+ XSLTUtils.addAttribute(model, "nsprefix", isSuppressPrefixesMode ? "" : getPrefixForURI(qName
.getNamespaceURI(), qName.getPrefix()), rootElt);
if (!wrapClasses) {
@@ -517,6 +533,10 @@
XSLTUtils.addAttribute(model, "anon", "yes", rootElt);
}
+ if (isUseWrapperClasses){
+ XSLTUtils.addAttribute(model, "usewrapperclasses", "yes", rootElt);
+ }
+
if (metainf.isExtension()) {
XSLTUtils.addAttribute(model, "extension", metainf
.getExtensionClassName(), rootElt);
@@ -563,14 +583,14 @@
}
// populate all the information
- populateInfo(metainf, model, rootElt, propertyNames, typeMap, false);
+ populateInfo(metainf, model, rootElt, propertyNames, typeMap, groupTypeMap, false);
if (metainf.isSimple() && metainf.isUnion()) {
populateMemberInfo(metainf, model, rootElt, typeMap);
}
if (metainf.isSimple() && metainf.isList()) {
- populateListInfo(metainf, model, rootElt, typeMap);
+ populateListInfo(metainf, model, rootElt, typeMap, groupTypeMap);
}
//////////////////////////////////////////////////////////
// System.out.println(DOM2Writer.nodeToString(rootElt));
@@ -582,7 +602,8 @@
protected void populateListInfo(BeanWriterMetaInfoHolder metainf,
Document model,
Element rootElement,
- Map typeMap) {
+ Map typeMap,
+ Map groupTypeMap) {
String javaName = makeUniqueJavaClassName(new ArrayList(), metainf.getItemTypeQName().getLocalPart());
Element itemType = XSLTUtils.addChildElement(model, "itemtype", rootElement);
@@ -592,9 +613,10 @@
XSLTUtils.addAttribute(model, "javaname", javaName, itemType);
- if (typeMap.containsKey(metainf.getItemTypeQName())) {
- XSLTUtils.addAttribute(model, "ours", "true", itemType);
- }
+ if (typeMap.containsKey(metainf.getItemTypeQName()) ||
+ groupTypeMap.containsKey(metainf.getItemTypeClassName())) {
+ XSLTUtils.addAttribute(model, "ours", "true", itemType);
+ }
if (PrimitiveTypeFinder.isPrimitive(metainf.getItemTypeClassName())) {
XSLTUtils.addAttribute(model, "primitive", "yes", itemType);
}
@@ -639,8 +661,12 @@
* @param typeMap
* @throws SchemaCompilationException
*/
- private void populateInfo(BeanWriterMetaInfoHolder metainf, Document model,
- Element rootElt, ArrayList propertyNames, Map typeMap,
+ private void populateInfo(BeanWriterMetaInfoHolder metainf,
+ Document model,
+ Element rootElt,
+ ArrayList propertyNames,
+ Map typeMap,
+ Map groupTypeMap,
boolean isInherited) throws SchemaCompilationException {
// we should add parent class details only if it is
// an extension or simple restriction
@@ -648,9 +674,9 @@
if (metainf.getParent() != null && (!metainf.isRestriction() || (metainf.isRestriction() && metainf.isSimple())))
{
populateInfo(metainf.getParent(), model, rootElt, propertyNames,
- typeMap, true);
+ typeMap, groupTypeMap, true);
}
- addPropertyEntries(metainf, model, rootElt, propertyNames, typeMap,
+ addPropertyEntries(metainf, model, rootElt, propertyNames, typeMap, groupTypeMap,
isInherited);
}
@@ -664,8 +690,11 @@
* @throws SchemaCompilationException
*/
private void addPropertyEntries(BeanWriterMetaInfoHolder metainf,
- Document model, Element rootElt, ArrayList propertyNames,
- Map typeMap, boolean isInherited) throws SchemaCompilationException {
+ Document model, Element rootElt,
+ ArrayList propertyNames,
+ Map typeMap,
+ Map groupTypeMap,
+ boolean isInherited) throws SchemaCompilationException {
// go in the loop and add the part elements
QName[] qName;
String javaClassNameForElement;
@@ -743,6 +772,7 @@
XSLTUtils.addAttribute(model, "type", javaClassNameForElement, property);
+
if (PrimitiveTypeFinder.isPrimitive(javaClassNameForElement)) {
XSLTUtils.addAttribute(model, "primitive", "yes", property);
@@ -799,6 +829,8 @@
XSLTUtils.addAttribute(model, "innerchoice", "yes", property);
}
+
+
if ((parentMetaInf != null) && metainf.isRestriction() && missingQNames.contains(name)) {
// this element details should be there with the parent meta Inf
addAttributesToProperty(
@@ -807,6 +839,7 @@
model,
property,
typeMap,
+ groupTypeMap,
javaClassNameForElement);
} else {
@@ -816,6 +849,7 @@
model,
property,
typeMap,
+ groupTypeMap,
javaClassNameForElement);
}
@@ -827,13 +861,15 @@
Document model,
Element property,
Map typeMap,
+ Map groupTypeMap,
String javaClassNameForElement) {
// add an attribute that says the type is default
if (metainf.getDefaultStatusForQName(name)) {
XSLTUtils.addAttribute(model, "default", "yes", property);
}
- if (typeMap.containsKey(metainf.getSchemaQNameForQName(name))) {
+ if (typeMap.containsKey(metainf.getSchemaQNameForQName(name)) ||
+ groupTypeMap.containsKey(metainf.getSchemaQNameForQName(name))) {
XSLTUtils.addAttribute(model, "ours", "yes", property);
}
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/sub-build.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/sub-build.xml?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/sub-build.xml (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/sub-build.xml Tue Jan 15 08:21:22 2008
@@ -394,6 +394,15 @@
<arg file="${testsuite.source.dir}/complexExtension.xsd"/>
<arg file="${schema.generated.src.dir}"/>
</java>
+
+ <echo>Compiling soapencoding.xsd</echo>
+ <java classname="org.apache.axis2.schema.XSD2Java" fork="true">
+ <jvmarg line="${maven.junit.jvmargs}"/>
+ <classpath refid="maven.dependency.classpath"/>
+ <classpath location="${compiled.classes.dir}"/>
+ <arg file="${testsuite.source.dir}/soapencoding.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
</target>
</project>
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/groups.xsd
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/groups.xsd?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/groups.xsd (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/groups.xsd Tue Jan 15 08:21:22 2008
@@ -78,7 +78,6 @@
<xs:group ref="tns:TestChoiceGroup"/>
</xs:choice>
</xs:group>
-
<xs:element name="TestAttributeGroupElement">
<xs:complexType>
<xs:sequence>
@@ -87,11 +86,9 @@
<xs:attributeGroup ref="tns:TestAttributeGroup" />
</xs:complexType>
</xs:element>
-
<xs:attributeGroup name="TestAttributeGroup">
<xs:attribute name="attribute1" type="xs:string"/>
</xs:attributeGroup>
-
<xs:element name="TestNestedAttributeGroupElement">
<xs:complexType>
<xs:sequence>
@@ -100,7 +97,6 @@
<xs:attributeGroup ref="tns:TestNestedAttributeGroup" />
</xs:complexType>
</xs:element>
-
<xs:attributeGroup name="TestNestedAttributeGroup">
<xs:attribute name="attribute2" type="xs:string"/>
<xs:attributeGroup ref="tns:TestAttributeGroup" />
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/innerParticles.xsd
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/innerParticles.xsd?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/innerParticles.xsd (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/innerParticles.xsd Tue Jan 15 08:21:22 2008
@@ -106,4 +106,29 @@
<xsd:sequence>
</xsd:sequence>
</xsd:complexType>
+
+ <xsd:complexType name="TestComplexType">
+ <xsd:sequence>
+ <xsd:element ref="test1:TestElement"/>
+ <xsd:sequence>
+ <xsd:element name="TestInnerElement" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="TestElement">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="param" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="TestComplexTypeElement" type="test1:TestComplexType"/>
+
</xsd:schema>
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/restrictions.xsd
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/restrictions.xsd?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/restrictions.xsd (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/restrictions.xsd Tue Jan 15 08:21:22 2008
@@ -189,7 +189,21 @@
</xsd:restriction>
</xsd:simpleType>
-
-
+ <xsd:element name="GetExemplarResponseTypeElement" type="tns:getExemplarResponseType"/>
+ <xsd:complexType name="getExemplarResponseType">
+ <xsd:complexContent>
+ <xsd:restriction base="xsd:anyType">
+ <xsd:sequence>
+ <xsd:element name="exemplar" type="xsd:string"/>
+ </xsd:sequence>
+ <xsd:attributeGroup ref="tns:ResponseAttributeGroup"/>
+ <xsd:attribute name="supportedMethods" type="xsd:string" use="optional"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:attributeGroup name="ResponseAttributeGroup">
+ <xsd:attribute name="responseCode" type="xsd:integer" use="optional" default="0"/>
+ <xsd:attribute name="responseMessage" type="xsd:string" use="optional"/>
+ </xsd:attributeGroup>
</xsd:schema>
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/union2.xsd
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/union2.xsd?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/union2.xsd (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test-resources/testsuite/union2.xsd Tue Jan 15 08:21:22 2008
@@ -31,4 +31,19 @@
<s:attribute name="attribute1" type="tns:TestList1"/>
</s:complexType>
</s:element>
+ <s:element name="TestFuzzyDateType" type="tns:fuzzyDateType"/>
+ <s:simpleType name="fuzzyDateType">
+ <s:union memberTypes="s:date s:dateTime s:gYear s:gYearMonth">
+ </s:union>
+ </s:simpleType>
+
+ <s:element name="TestElement">
+ <s:complexType>
+ <s:sequence>
+ <s:element name="creationDate" type="s:string"/>
+ <s:element name="CreationDate" type="s:string"/>
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+
</s:schema>
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/innerparticles/InnerParticlesTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/innerparticles/InnerParticlesTest.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/innerparticles/InnerParticlesTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/innerparticles/InnerParticlesTest.java Tue Jan 15 08:21:22 2008
@@ -308,5 +308,37 @@
}
}
+ public void testTestComplexTypeElement(){
+ TestComplexTypeElement testComplexTypeElement = new TestComplexTypeElement();
+
+ TestComplexType testComplexType = new TestComplexType();
+ testComplexTypeElement.setTestComplexTypeElement(testComplexType);
+
+ TestElement_type0 testElement_type0 = new TestElement_type0();
+ testElement_type0.setParam("param");
+ testComplexType.setTestElement(testElement_type0);
+
+ TestComplexTypeSequence_type0 testComplexTypeSequence_type0 = new TestComplexTypeSequence_type0();
+ testComplexType.setTestComplexTypeSequence_type0(testComplexTypeSequence_type0);
+
+ try {
+ OMElement omElement = testComplexTypeElement.getOMElement(
+ TestComplexTypeElement.MY_QNAME,OMAbstractFactory.getOMFactory());
+ String omElementString = omElement.toStringWithConsume();
+ System.out.println("OM String ==> " + omElementString);
+ XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
+ new ByteArrayInputStream(omElementString.getBytes()));
+ TestComplexTypeElement result = TestComplexTypeElement.Factory.parse(xmlReader);
+ assertEquals(result.getTestComplexTypeElement().getTestElement().getParam(),"param");
+ } catch (ADBException e) {
+ fail();
+ } catch (XMLStreamException e) {
+ fail();
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail();
+ }
+ }
+
}
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/restriction/ComplexRestrictionTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/restriction/ComplexRestrictionTest.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/restriction/ComplexRestrictionTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/restriction/ComplexRestrictionTest.java Tue Jan 15 08:21:22 2008
@@ -20,9 +20,50 @@
import junit.framework.TestCase;
+import java.io.ByteArrayInputStream;
+import java.math.BigInteger;
+
+import org.tempuri.GetExemplarResponseType;
+import org.tempuri.GetExemplarResponseTypeElement;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axis2.databinding.ADBException;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
public class ComplexRestrictionTest extends TestCase {
- public void testComplexRestriction(){
-
+
+ public void testGetExemplarResponseTypeElement(){
+ GetExemplarResponseTypeElement getExemplarResponseTypeElement = new GetExemplarResponseTypeElement();
+ GetExemplarResponseType getExemplarResponseType = new GetExemplarResponseType();
+ getExemplarResponseType.setExemplar("test string1");
+ getExemplarResponseType.setResponseCode(new BigInteger("23"));
+ getExemplarResponseType.setResponseMessage("test string2");
+ getExemplarResponseType.setSupportedMethods("test string3");
+
+ getExemplarResponseTypeElement.setGetExemplarResponseTypeElement(getExemplarResponseType);
+
+ try {
+ OMElement omElement =
+ getExemplarResponseTypeElement.getOMElement(GetExemplarResponseTypeElement.MY_QNAME,
+ OMAbstractFactory.getOMFactory());
+ String omElementString = omElement.toStringWithConsume();
+ System.out.println("OMElement string ==> " + omElementString);
+ XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(omElementString.getBytes()));
+ GetExemplarResponseTypeElement result = GetExemplarResponseTypeElement.Factory.parse(xmlReader);
+ GetExemplarResponseType resultType = result.getGetExemplarResponseTypeElement();
+ assertEquals(resultType.getExemplar(),"test string1");
+ assertEquals(resultType.getResponseMessage(),"test string2");
+ assertEquals(resultType.getSupportedMethods(),"test string3");
+ } catch (ADBException e) {
+ fail();
+ } catch (XMLStreamException e) {
+ fail();
+ } catch (Exception e) {
+ fail();
+ }
}
}
Modified: webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/union2/Union2Test.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/union2/Union2Test.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/union2/Union2Test.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb-codegen/test/org/apache/axis2/schema/union2/Union2Test.java Tue Jan 15 08:21:22 2008
@@ -15,10 +15,7 @@
*/
package org.apache.axis2.schema.union2;
-import org.tempuri.union2.TestUnionElement2;
-import org.tempuri.union2.TestUnion1;
-import org.tempuri.union2.TestListElement1;
-import org.tempuri.union2.TestList1;
+import org.tempuri.union2.*;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.util.StAXUtils;
@@ -30,6 +27,7 @@
import junit.framework.TestCase;
import java.io.ByteArrayInputStream;
+import java.util.Date;
public class Union2Test extends TestCase {
@@ -101,6 +99,30 @@
fail();
}
+ }
+
+ public void testFuzzDateType(){
+ TestFuzzyDateType testFuzzyDateType = new TestFuzzyDateType();
+
+ FuzzyDateType fuzzyDateType = new FuzzyDateType();
+ fuzzyDateType.setObject(new Date());
+
+ testFuzzyDateType.setTestFuzzyDateType(fuzzyDateType);
+ try {
+ OMElement omElement = testFuzzyDateType.getOMElement(
+ TestFuzzyDateType.MY_QNAME,OMAbstractFactory.getOMFactory());
+ String omElementString = omElement.toStringWithConsume();
+ System.out.println("OM Element ==> " + omElementString);
+ XMLStreamReader xmlReader =
+ StAXUtils.createXMLStreamReader(new ByteArrayInputStream(omElementString.getBytes()));
+ TestFuzzyDateType result = TestFuzzyDateType.Factory.parse(xmlReader);
+ } catch (ADBException e) {
+ fail();
+ } catch (XMLStreamException e) {
+ fail();
+ } catch (Exception e) {
+ fail();
+ }
}
}
Modified: webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/ADBBean.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/ADBBean.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/ADBBean.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/ADBBean.java Tue Jan 15 08:21:22 2008
@@ -24,13 +24,14 @@
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamException;
+import java.io.Serializable;
/*
* ADBBean - Axis Data Binding Bean. This will be implemented by all the beans that are being generated by
* Axis2 data binding framework
*/
-public interface ADBBean {
+public interface ADBBean extends Serializable {
/**
* Serializes an ADBBean. Gets the pull parser and fetches the XML pull events to represent the
* bean.
Modified: webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/types/Time.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/types/Time.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/types/Time.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/types/Time.java Tue Jan 15 08:21:22 2008
@@ -106,7 +106,7 @@
int second = 0;
int miliSecond = 0;
int timeZoneOffSet = TimeZone.getDefault().getRawOffset();
-
+ int milliSecondPartLength = 0;
if (source.length() >= 8) {
if ((source.charAt(2) != ':' )|| (source.charAt(5) != ':')){
throw new RuntimeException("Invalid time format (" + source + ") having : s in wrong places");
@@ -114,6 +114,9 @@
hour = Integer.parseInt(source.substring(0, 2));
minite = Integer.parseInt(source.substring(3, 5));
second = Integer.parseInt(source.substring(6, 8));
+
+
+
if (source.length() > 8) {
String rest = source.substring(8);
if (rest.startsWith(".")) {
@@ -122,19 +125,21 @@
// this is in gmt time zone
timeZoneOffSet = 0;
miliSecond = Integer.parseInt(rest.substring(1, rest.lastIndexOf("Z")));
-
+ milliSecondPartLength = rest.substring(1,rest.lastIndexOf("Z")).trim().length();
} else if ((rest.lastIndexOf("+") > 0) || (rest.lastIndexOf("-") > 0)) {
// this is given in a general time zione
String timeOffSet = null;
if (rest.lastIndexOf("+") > 0) {
timeOffSet = rest.substring(rest.lastIndexOf("+") + 1);
miliSecond = Integer.parseInt(rest.substring(1, rest.lastIndexOf("+")));
+ milliSecondPartLength = rest.substring(1, rest.lastIndexOf("+")).trim().length();
// we keep +1 or -1 to finally calculate the value
timeZoneOffSet = 1;
} else if (rest.lastIndexOf("-") > 0) {
timeOffSet = rest.substring(rest.lastIndexOf("-") + 1);
miliSecond = Integer.parseInt(rest.substring(1, rest.lastIndexOf("-")));
+ milliSecondPartLength = rest.substring(1, rest.lastIndexOf("-")).trim().length();
// we keep +1 or -1 to finally calculate the value
timeZoneOffSet = -1;
}
@@ -149,6 +154,7 @@
} else {
// i.e it does not have time zone
miliSecond = Integer.parseInt(rest.substring(1));
+ milliSecondPartLength = rest.substring(1).trim().length();
}
} else {
@@ -179,7 +185,17 @@
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minite);
calendar.set(Calendar.SECOND, second);
+ if (milliSecondPartLength != 3) {
+ // milisecond part represenst the fraction of the second so we have to
+ // find the fraction and multiply it by 1000. So if milisecond part
+ // has three digits nothing required
+ miliSecond = miliSecond * 1000;
+ for (int i = 0; i < milliSecondPartLength; i++) {
+ miliSecond = miliSecond / 10;
+ }
+ }
calendar.set(Calendar.MILLISECOND, miliSecond);
+
calendar.set(Calendar.ZONE_OFFSET, timeZoneOffSet);
return calendar;
Modified: webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java Tue Jan 15 08:21:22 2008
@@ -24,7 +24,11 @@
import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory;
import org.apache.axiom.om.util.Base64;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.deployment.util.BeanExcludeInfo;
+import org.apache.axis2.deployment.util.ExcludeInfo;
+import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.java2wsdl.TypeTable;
+import org.apache.axis2.description.AxisService;
import org.apache.axis2.databinding.typemapping.SimpleTypeMapper;
import org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl;
import org.apache.axis2.engine.ObjectSupplier;
@@ -103,19 +107,39 @@
"elementName");
}
+ AxisService axisService = null;
+ if (MessageContext.getCurrentMessageContext() != null) {
+ axisService = MessageContext.getCurrentMessageContext().getAxisService();
+ }
+ BeanExcludeInfo beanExcludeInfo = null;
+ if (axisService != null && axisService.getExcludeInfo() != null) {
+ beanExcludeInfo = axisService.getExcludeInfo().getBeanExcludeInfoForClass(
+ jClass.getQualifiedName());
+ }
// properties from JAM
ArrayList propertyList = new ArrayList();
JProperty properties [] = jClass.getDeclaredProperties();
for (int i = 0; i < properties.length; i++) {
JProperty property = properties[i];
- propertyList.add(property);
+ String propertyName = getCorrectName(property.getSimpleName());
+ if ((beanExcludeInfo == null) || !beanExcludeInfo.isExcludedProperty(propertyName)){
+ propertyList.add(property);
+ }
+
}
JClass supClass = jClass.getSuperclass();
- while (!"java.lang.Object".equals(supClass.getQualifiedName())) {
+ while (!supClass.getQualifiedName().startsWith("java.")) {
properties = supClass.getDeclaredProperties();
+ ExcludeInfo excludeInfo = axisService.getExcludeInfo();
+ if (excludeInfo != null) {
+ beanExcludeInfo = excludeInfo.getBeanExcludeInfoForClass(supClass.getQualifiedName());
+ }
for (int i = 0; i < properties.length; i++) {
JProperty property = properties[i];
- propertyList.add(property);
+ String propertyName = getCorrectName(property.getSimpleName());
+ if ((beanExcludeInfo == null) || !beanExcludeInfo.isExcludedProperty(propertyName)) {
+ propertyList.add(property);
+ }
}
supClass = supClass.getSuperclass();
}
Modified: webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java Tue Jan 15 08:21:22 2008
@@ -159,7 +159,19 @@
}
public static void appendDate(StringBuffer dateString, Calendar calendar) {
- dateString.append(calendar.get(Calendar.YEAR)).append("-");
+
+ int year = calendar.get(Calendar.YEAR);
+
+ if (year < 1000){
+ dateString.append("0");
+ }
+ if (year < 100){
+ dateString.append("0");
+ }
+ if (year < 10) {
+ dateString.append("0");
+ }
+ dateString.append(year).append("-");
// xml date month is started from 1 and calendar month is
// started from 0. so have to add one
@@ -861,6 +873,8 @@
minite = Integer.parseInt(source.substring(14, 16));
second = Integer.parseInt(source.substring(17, 19));
+ int milliSecondPartLength = 0;
+
if (source.length() > 19) {
String rest = source.substring(19);
if (rest.startsWith(".")) {
@@ -869,19 +883,21 @@
// this is in gmt time zone
timeZoneOffSet = 0;
miliSecond = Integer.parseInt(rest.substring(1, rest.lastIndexOf("Z")));
-
+ milliSecondPartLength = rest.substring(1,rest.lastIndexOf("Z")).trim().length();
} else if ((rest.lastIndexOf("+") > 0) || (rest.lastIndexOf("-") > 0)) {
// this is given in a general time zione
String timeOffSet = null;
if (rest.lastIndexOf("+") > 0) {
timeOffSet = rest.substring(rest.lastIndexOf("+") + 1);
miliSecond = Integer.parseInt(rest.substring(1, rest.lastIndexOf("+")));
+ milliSecondPartLength = rest.substring(1, rest.lastIndexOf("+")).trim().length();
// we keep +1 or -1 to finally calculate the value
timeZoneOffSet = 1;
} else if (rest.lastIndexOf("-") > 0) {
timeOffSet = rest.substring(rest.lastIndexOf("-") + 1);
miliSecond = Integer.parseInt(rest.substring(1, rest.lastIndexOf("-")));
+ milliSecondPartLength = rest.substring(1, rest.lastIndexOf("-")).trim().length();
// we keep +1 or -1 to finally calculate the value
timeZoneOffSet = -1;
}
@@ -896,6 +912,7 @@
} else {
// i.e it does not have time zone
miliSecond = Integer.parseInt(rest.substring(1));
+ milliSecondPartLength = rest.substring(1).trim().length();
}
} else {
@@ -926,6 +943,15 @@
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minite);
calendar.set(Calendar.SECOND, second);
+ if (milliSecondPartLength != 3){
+ // milisecond part represenst the fraction of the second so we have to
+ // find the fraction and multiply it by 1000. So if milisecond part
+ // has three digits nothing required
+ miliSecond = miliSecond * 1000;
+ for (int i = 0; i < milliSecondPartLength; i++) {
+ miliSecond = miliSecond / 10;
+ }
+ }
calendar.set(Calendar.MILLISECOND, miliSecond);
calendar.set(Calendar.ZONE_OFFSET, timeZoneOffSet);
@@ -1061,7 +1087,7 @@
for (int i = 0; i < listSize; i++) {
Object o = objectList.get(i);
if (o != null) {
- array[i] = Boolean.parseBoolean(o.toString());
+ array[i] = o.toString().equalsIgnoreCase("true");
}
}
returnArray = array;
@@ -1465,9 +1491,13 @@
if (attributeNameSpace.equals(Constants.XSD_NAMESPACE)) {
if ("base64Binary".equals(attributeType)) {
+ xmlStreamReader.next();
returnObject = getDataHandlerObject(xmlStreamReader);
} else {
- String attribValue = xmlStreamReader.getElementText();
+ // we have to do this other wise xmlstream event type is not set.
+ xmlStreamReader.next();
+ String attribValue = xmlStreamReader.getText();
+ xmlStreamReader.next();
if (attribValue != null) {
if (attributeType.equals("string")) {
returnObject = attribValue;
Modified: webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java Tue Jan 15 08:21:22 2008
@@ -19,10 +19,10 @@
package org.apache.axis2.databinding.utils;
-import org.apache.axiom.om.OMAttribute;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.*;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPBody;
import org.apache.axis2.AxisFault;
import org.apache.axis2.databinding.typemapping.SimpleTypeMapper;
import org.apache.axis2.engine.ObjectSupplier;
@@ -30,6 +30,7 @@
import javax.xml.namespace.QName;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.Map;
public class MultirefHelper {
@@ -168,6 +169,138 @@
public void clean() {
elementMap.clear();
objectmap.clear();
+ }
+
+ /**
+ * this method is used to process the href attributes which may comes with the incomming soap mesaage
+ * <soap:body>
+ * <operation>
+ * <arg1 href="#obj1"/>
+ * </operation>
+ * <multiref id="obj1">
+ * <name>the real argument</name>
+ * <color>blue</color>
+ * </multiref>
+ * </soap:body>
+ * here we assume first child of the soap body has the main object structure and others contain the
+ * multiref parts.
+ * Soap spec says that those multiref parts must be top level elements.
+ *
+ * @param soapEnvelope
+ */
+
+ public static void processHrefAttributes(SOAPEnvelope soapEnvelope)
+ throws AxisFault {
+ // first populate the multiref parts to a hash table.
+ SOAPBody soapBody = soapEnvelope.getBody();
+ // first build the whole tree
+ soapBody.build();
+ OMElement omElement = null;
+ OMAttribute idAttribute = null;
+ Map idAndOMElementMap = new HashMap();
+ for (Iterator iter = soapBody.getChildElements(); iter.hasNext();) {
+ omElement = (OMElement) iter.next();
+ // the attribute id is an unqualified attribute
+ idAttribute = omElement.getAttribute(new QName(null, "id"));
+ if (idAttribute != null) {
+ // for the first element there may not have an id
+ idAndOMElementMap.put(idAttribute.getAttributeValue(), omElement);
+ }
+ }
+
+ // start processing from the first child
+ processHrefAttributes(idAndOMElementMap, soapBody.getFirstElement(), OMAbstractFactory.getOMFactory());
+
+ }
+
+ public static void processHrefAttributes(Map idAndOMElementMap,
+ OMElement elementToProcess,
+ OMFactory omFactory)
+ throws AxisFault {
+
+ // first check whether this element has an href value.
+ // href is also an unqualifed attribute
+ OMAttribute hrefAttribute = elementToProcess.getAttribute(new QName(null, "href"));
+ if (hrefAttribute != null) {
+ // i.e this has an href attribute
+ String hrefAttributeValue = hrefAttribute.getAttributeValue();
+ if (!hrefAttributeValue.startsWith("#")) {
+ throw new AxisFault("In valid href ==> " + hrefAttributeValue + " does not starts with #");
+ } else {
+ OMElement referedOMElement =
+ (OMElement) idAndOMElementMap.get(hrefAttributeValue.substring(1));
+ if (referedOMElement == null) {
+ throw new AxisFault("In valid href ==> " + hrefAttributeValue + " can not find" +
+ "the matching element");
+ } else {
+ // now we have to remove the hrefAttribute and add all the child elements to the
+ // element being proccesed
+ elementToProcess.removeAttribute(hrefAttribute);
+ OMElement clonedReferenceElement = getClonedOMElement(referedOMElement, omFactory);
+ OMNode omNode = null;
+ for (Iterator iter = clonedReferenceElement.getChildren(); iter.hasNext();) {
+ omNode = (OMNode) iter.next();
+ elementToProcess.addChild(omNode.detach());
+ }
+
+ // add attributes
+ OMAttribute omAttribute = null;
+ for (Iterator iter = clonedReferenceElement.getAllAttributes(); iter.hasNext();) {
+ omAttribute = (OMAttribute) iter.next();
+ // we do not have to populate the id attribute
+ if (!omAttribute.getLocalName().equals("id")) {
+ elementToProcess.addAttribute(omAttribute);
+ }
+ }
+ }
+ }
+ }
+
+ // call recursively to proces all elements
+ OMElement childOMElement = null;
+ for (Iterator iter = elementToProcess.getChildElements(); iter.hasNext();) {
+ childOMElement = (OMElement) iter.next();
+ processHrefAttributes(idAndOMElementMap, childOMElement, omFactory);
+ }
+ }
+
+ /**
+ * returns an cloned om element for this OMElement
+ *
+ * @param omElement
+ * @return cloned omElement
+ */
+ public static OMElement getClonedOMElement(OMElement omElement, OMFactory omFactory) throws AxisFault {
+
+ OMElement newOMElement = omFactory.createOMElement(omElement.getQName());
+
+ // copying attributes
+ OMAttribute omAttribute = null;
+ OMAttribute newOMAttribute = null;
+ for (Iterator iter = omElement.getAllAttributes(); iter.hasNext();) {
+ omAttribute = (OMAttribute) iter.next();
+ if (!omAttribute.getAttributeValue().equals("id")) {
+ newOMAttribute = omFactory.createOMAttribute(
+ omAttribute.getLocalName(),
+ omAttribute.getNamespace(),
+ omAttribute.getAttributeValue());
+ newOMElement.addAttribute(newOMAttribute);
+ }
+ }
+ OMNode omNode = null;
+ OMText omText = null;
+ for (Iterator iter = omElement.getChildren(); iter.hasNext();) {
+ omNode = (OMNode) iter.next();
+ if (omNode instanceof OMText) {
+ omText = (OMText) omNode;
+ newOMElement.addChild(omFactory.createOMText(omText.getText()));
+ } else if (omNode instanceof OMElement) {
+ newOMElement.addChild(getClonedOMElement((OMElement) omNode, omFactory));
+ } else {
+ throw new AxisFault("Unknown child element type ==> " + omNode.getClass().getName());
+ }
+ }
+ return newOMElement;
}
}
Modified: webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java?rev=612147&r1=612146&r2=612147&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java Tue Jan 15 08:21:22 2008
@@ -153,6 +153,7 @@
log.error(msg, e);
throw new AxisFault(msg, e);
} catch(RuntimeException e) {
+ log.error(e.getMessage(), e);
throw AxisFault.makeFault(e);
} catch (Exception e) {
String msg = "Exception occurred while trying to invoke service method " +
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org