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]

Reply via email to