Author: amilas Date: Tue Jun 12 07:16:40 2007 New Revision: 546491 URL: http://svn.apache.org/viewvc?view=rev&rev=546491 Log: add the abstract complex support to adb
Modified: 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/BeanWriter.java webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java 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?view=diff&rev=546491&r1=546490&r2=546491 ============================================================================== --- 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 Tue Jun 12 07:16:40 2007 @@ -921,7 +921,7 @@ */ private String writeComplexType(XmlSchemaComplexType complexType, BeanWriterMetaInfoHolder metaInfHolder) throws SchemaCompilationException { - String javaClassName = writer.write(complexType.getQName(), processedTypemap, metaInfHolder); + String javaClassName = writer.write(complexType.getQName(), processedTypemap, metaInfHolder, complexType.isAbstract()); processedTypeMetaInfoMap.put(complexType.getQName(), metaInfHolder); return javaClassName; } @@ -938,7 +938,7 @@ private String writeComplexParticle(QName qname,BeanWriterMetaInfoHolder metaInfHolder) throws SchemaCompilationException { - String javaClassName = writer.write(qname, processedTypemap, metaInfHolder); + String javaClassName = writer.write(qname, processedTypemap, metaInfHolder,false); processedTypeMetaInfoMap.put(qname, metaInfHolder); return javaClassName; } 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?view=diff&rev=546491&r1=546490&r2=546491 ============================================================================== --- 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 Tue Jun 12 07:16:40 2007 @@ -68,7 +68,7 @@ */ </xsl:if> - public <xsl:if test="not(@unwrapped) or (@skip-write)">static</xsl:if> class <xsl:value-of select="$name"/> <xsl:if test="$extension"> extends <xsl:value-of select="$extension"/></xsl:if> <xsl:if test="$restriction"> extends <xsl:value-of select="$restriction"/></xsl:if> + public <xsl:if test="not(@unwrapped) or (@skip-write)">static</xsl:if> <xsl:if test="@isAbstract">abstract</xsl:if> class <xsl:value-of select="$name"/> <xsl:if test="$extension"> extends <xsl:value-of select="$extension"/></xsl:if> <xsl:if test="$restriction"> extends <xsl:value-of select="$restriction"/></xsl:if> <xsl:if test="$union and not($restriction) and not($extension)"> extends org.apache.axis2.databinding.types.Union </xsl:if> implements org.apache.axis2.databinding.ADBBean{ <xsl:choose> @@ -2334,7 +2334,9 @@ */ public static <xsl:value-of select="$name"/> parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{ <xsl:variable name="isEnumFacet" select="property/enumFacet"/> - <xsl:if test="not($isEnumFacet)"><xsl:value-of select="$name"/> object = new <xsl:value-of select="$name"/>();</xsl:if> + <xsl:if test="not($isEnumFacet)"><xsl:value-of select="$name"/> object = + <xsl:choose><xsl:when test="@isAbstract">null;</xsl:when><xsl:otherwise>new <xsl:value-of select="$name"/>();</xsl:otherwise></xsl:choose> + </xsl:if> <xsl:if test="$isEnumFacet"> <xsl:value-of select="$name"/> object = null; // initialize a hash map to keep values @@ -2417,6 +2419,9 @@ } </xsl:otherwise> </xsl:choose> + <xsl:if test="@isAbstract"> + throw new RuntimeException("The an abstract class can not be instantiated !!!"); + </xsl:if> } Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java?view=diff&rev=546491&r1=546490&r2=546491 ============================================================================== --- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java (original) +++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/BeanWriter.java Tue Jun 12 07:16:40 2007 @@ -69,7 +69,10 @@ * @return Returns String. * @throws SchemaCompilationException */ - public String write(QName qname, Map typeMap, BeanWriterMetaInfoHolder metainf) + public String write(QName qname, + Map typeMap, + BeanWriterMetaInfoHolder metainf, + boolean isAbstract) throws SchemaCompilationException; /** Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java?view=diff&rev=546491&r1=546490&r2=546491 ============================================================================== --- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java (original) +++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/writer/CStructWriter.java Tue Jun 12 07:16:40 2007 @@ -181,7 +181,10 @@ * * @see org.apache.axis2.schema.writer.BeanWriter */ - public String write(QName qName, Map typeMap, BeanWriterMetaInfoHolder metainf) + public String write(QName qName, + Map typeMap, + BeanWriterMetaInfoHolder metainf, + boolean isAbstract) throws SchemaCompilationException { try { 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?view=diff&rev=546491&r1=546490&r2=546491 ============================================================================== --- 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 Tue Jun 12 07:16:40 2007 @@ -112,7 +112,6 @@ * meaning when the classes are supposed to be wrapped so the * * @return Returns Map. - * @throws SchemaCompilationException * @see BeanWriter#getModelMap() */ public Map getModelMap() { @@ -210,7 +209,7 @@ try { QName qName = element.getQName(); - return process(qName, metainf, typeMap, true); + return process(qName, metainf, typeMap, true, false); } catch (Exception e) { e.printStackTrace(); throw new SchemaCompilationException(e); @@ -219,23 +218,23 @@ } /** - * @param complexType + * ` + * @param qName * @param typeMap * @param metainf - * @param fullyQualifiedClassName the name returned by makeFullyQualifiedClassName() or null if - * it wasn't called - * @throws org.apache.axis2.schema.SchemaCompilationException - * - * @see BeanWriter#write(org.apache.ws.commons.schema.XmlSchemaComplexType, - * java.util.Map, org.apache.axis2.schema.BeanWriterMetaInfoHolder) + * @param isAbstract + * @return + * @throws SchemaCompilationException */ - public String write(QName qName, Map typeMap, - BeanWriterMetaInfoHolder metainf) + public String write(QName qName, + Map typeMap, + BeanWriterMetaInfoHolder metainf, + boolean isAbstract) throws SchemaCompilationException { try { // determine the package for this type. - return process(qName, metainf, typeMap, false); + return process(qName, metainf, typeMap, false,isAbstract); } catch (SchemaCompilationException e) { throw e; @@ -288,7 +287,7 @@ qName = (QName) simpleType.getMetaInfoMap().get(SchemaConstants.SchemaCompilerInfoHolder.FAKE_QNAME); } metainf.addtStatus(qName, SchemaConstants.SIMPLE_TYPE_OR_CONTENT); - return process(qName, metainf, typeMap, true); + return process(qName, metainf, typeMap, true, false); } catch (Exception e) { throw new SchemaCompilationException(e); } @@ -374,8 +373,11 @@ * @return Returns String. * @throws Exception */ - private String process(QName qName, BeanWriterMetaInfoHolder metainf, - Map typeMap, boolean isElement) + private String process(QName qName, + BeanWriterMetaInfoHolder metainf, + Map typeMap, + boolean isElement, + boolean isAbstract) throws Exception { String fullyQualifiedClassName = metainf.getOwnClassName(); if (fullyQualifiedClassName == null) @@ -406,7 +408,7 @@ if (wrapClasses) { globalWrappedDocument.getDocumentElement().appendChild( getBeanElement(globalWrappedDocument, className, - originalName, basePackageName, qName, isElement, + originalName, basePackageName, qName, isElement,isAbstract, metainf, propertyNames, typeMap)); } else { @@ -414,7 +416,7 @@ Document model = XSLTUtils.getDocument(); // make the XML model.appendChild(getBeanElement(model, className, originalName, - basePackageName, qName, isElement, metainf, propertyNames, + basePackageName, qName, isElement,isAbstract, metainf, propertyNames, typeMap)); if (writeClasses) { @@ -470,6 +472,7 @@ String packageName, QName qName, boolean isElement, + boolean isAbstract, BeanWriterMetaInfoHolder metainf, ArrayList propertyNames, Map typeMap) @@ -485,6 +488,10 @@ if (!wrapClasses) { XSLTUtils.addAttribute(model, "unwrapped", "yes", rootElt); + } + + if (isAbstract){ + XSLTUtils.addAttribute(model, "isAbstract", "yes", rootElt); } if (!writeClasses) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]