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 am...@apache.org on 2007/10/17 09:03:55 UTC
svn commit: r585400 - in /webservices/axis2/trunk/java/modules/adb-codegen:
./ src/org/apache/axis2/schema/ src/org/apache/axis2/schema/template/
src/org/apache/axis2/schema/writer/
Author: amilas
Date: Wed Oct 17 00:03:49 2007
New Revision: 585400
URL: http://svn.apache.org/viewvc?rev=585400&view=rev
Log:
added the default value support to ADB
Modified:
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
webservices/axis2/trunk/java/modules/adb-codegen/sub-build.xml
Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java?rev=585400&r1=585399&r2=585400&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java Wed Oct 17 00:03:49 2007
@@ -64,6 +64,8 @@
protected Map xmlNameJavaNameMap = new HashMap();
protected List memberTypesKeys = new ArrayList();
+ protected Map elementQNameToDefulatValueMap = new HashMap();
+
protected QName itemTypeQName;
protected String itemTypeClassName;
protected boolean isUnion;
@@ -312,6 +314,34 @@
}
/**
+ * this method registers the defult value agaist the element qname.
+ * @param qname
+ * @param value
+ */
+ public void registerDefaultValue(QName qname,String value){
+ this.elementQNameToDefulatValueMap.put(qname,value);
+ }
+
+ /**
+ *
+ * @param qname
+ * @return is a default value available for this qname
+ */
+ public boolean isDefaultValueAvailable(QName qname){
+ return this.elementQNameToDefulatValueMap.containsKey(qname);
+ }
+
+ /**
+ * gets the default value for qname
+ * @param qname
+ * @return default value for this qname
+ */
+
+ public String getDefaultValueForQName(QName qname){
+ return (String) this.elementQNameToDefulatValueMap.get(qname);
+ }
+
+ /**
* Gets the schema name for the given QName.
*
* @param eltQName
@@ -466,6 +496,7 @@
this.qNameMaxOccursCountMap.clear();
this.qNameMinOccursCountMap.clear();
this.qNameOrderMap.clear();
+ this.elementQNameToDefulatValueMap.clear();
}
/**
Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java?rev=585400&r1=585399&r2=585400&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java Wed Oct 17 00:03:49 2007
@@ -421,6 +421,12 @@
qName,
className);
}
+
+ // register the default value if present
+ if (xsElt.getDefaultValue() != null){
+ metainf.registerDefaultValue(xsElt.getQName(),xsElt.getDefaultValue());
+ }
+
if (isBinary(xsElt)) {
metainf.addtStatus(xsElt.getQName(),
SchemaConstants.BINARY_TYPE);
@@ -1613,6 +1619,10 @@
att.addMetaInfo(
SchemaConstants.SchemaCompilerInfoHolder.CLASSNAME_KEY,
className);
+ // set the default value
+ if (att.getDefaultValue() != null){
+ metainf.registerDefaultValue(att.getQName(),att.getDefaultValue());
+ }
// after
} else {
XmlSchemaType type = getType(parentSchema, schemaTypeName);
@@ -2022,6 +2032,11 @@
if (innerChoiceElementList.contains(referencedQName)){
metainfHolder.addtStatus(referencedQName,SchemaConstants.INNER_CHOICE_ELEMENT);
}
+ // register the default value as well
+ if (elt.getDefaultValue() != null){
+ metainfHolder.registerDefaultValue(referencedQName,elt.getDefaultValue());
+ }
+
}
}
Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl?rev=585400&r1=585399&r2=585400&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl Wed Oct 17 00:03:49 2007
@@ -262,7 +262,17 @@
*/
<xsl:if test="not(@inherited)">
- protected <xsl:value-of select="$propertyType"/><xsl:text> </xsl:text><xsl:value-of select="$varName" /> ;
+ <xsl:choose>
+ <xsl:when test="@defaultValue">
+ protected <xsl:value-of select="$propertyType"/><xsl:text> </xsl:text><xsl:value-of select="$varName" /> =
+ org.apache.axis2.databinding.utils.ConverterUtil.convertTo<xsl:value-of select="$shortTypeName"/>("<xsl:value-of
+ select="@defaultValue"/>");
+ </xsl:when>
+ <xsl:otherwise>
+ protected <xsl:value-of select="$propertyType"/><xsl:text> </xsl:text><xsl:value-of select="$varName" /> ;
+ </xsl:otherwise>
+ </xsl:choose>
+
</xsl:if>
<xsl:if test="enumFacet">
private static java.util.HashMap _table_ = new java.util.HashMap();
Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java?rev=585400&r1=585399&r2=585400&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java Wed Oct 17 00:03:49 2007
@@ -713,6 +713,7 @@
javaClassNameForElement = metainf.getClassNameForQName(name);
}
+
if (javaClassNameForElement == null) {
javaClassNameForElement = getDefaultClassName();
log.warn(SchemaCompilerMessages
@@ -728,6 +729,15 @@
if (PrimitiveTypeFinder.isPrimitive(javaClassNameForElement)) {
XSLTUtils.addAttribute(model, "primitive", "yes", property);
+ }
+
+ // add the default value
+ if (metainf.isDefaultValueAvailable(name)){
+ QName schemaQName = metainf.getSchemaQNameForQName(name);
+ if (baseTypeMap.containsKey(schemaQName)){
+ XSLTUtils.addAttribute(model, "defaultValue",
+ metainf.getDefaultValueForQName(name), property);
+ }
}
//in the case the original element is an array but the derived one is not.
Modified: webservices/axis2/trunk/java/modules/adb-codegen/sub-build.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/sub-build.xml?rev=585400&r1=585399&r2=585400&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/sub-build.xml (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/sub-build.xml Wed Oct 17 00:03:49 2007
@@ -378,6 +378,14 @@
<arg file="${testsuite.source.dir}/union2.xsd"/>
<arg file="${schema.generated.src.dir}"/>
</java>
+ <echo>Compiling default_value.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}/default_value.xsd"/>
+ <arg file="${schema.generated.src.dir}"/>
+ </java>
</target>
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org