scheu       02/03/20 13:43:52

  Modified:    java/src/org/apache/axis/encoding/ser BeanSerializer.java
               java/src/org/apache/axis/wsdl/toJava JavaBeanWriter.java
               java/test/wsdl/roundtrip Investment.java
  Log:
  Added support for the abstract attribute (optional requirement of JSR 101).
  
    1) An abstract=true on a complexType causes the generation of an abstract class.
    2) An abstract class causes an abstract=true on the complexType.
    3) Changed the roundtrip test slightly to test this behavior.
  
  Revision  Changes    Path
  1.22      +6 -0      
xml-axis/java/src/org/apache/axis/encoding/ser/BeanSerializer.java
  
  Index: BeanSerializer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/BeanSerializer.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- BeanSerializer.java       17 Mar 2002 16:25:08 -0000      1.21
  +++ BeanSerializer.java       20 Mar 2002 21:43:51 -0000      1.22
  @@ -86,6 +86,7 @@
   import java.io.Serializable;
   import java.lang.reflect.Method;
   import java.lang.reflect.InvocationTargetException;
  +import java.lang.reflect.Modifier;
   import java.beans.IntrospectionException;
   
   import org.w3c.dom.Element;
  @@ -330,6 +331,11 @@
           // Build a ClassRep that represents the bean class.  This
           // allows users to provide their own field mapping.
           ClassRep clsRep = types.getBeanBuilder().build(javaType);
  +
  +        // Map abstract classes to abstract attribute on complexType
  +        if (Modifier.isAbstract(clsRep.getModifiers())) {
  +            complexType.setAttribute("abstract", "true");
  +        }
   
           // Write out fields
           Vector fields = clsRep.getFields();
  
  
  
  1.2       +11 -1     
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaBeanWriter.java
  
  Index: JavaBeanWriter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaBeanWriter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JavaBeanWriter.java       19 Mar 2002 23:38:31 -0000      1.1
  +++ JavaBeanWriter.java       20 Mar 2002 21:43:52 -0000      1.2
  @@ -141,7 +141,17 @@
           if (type.isSimpleType())
               implementsText = ", org.apache.axis.encoding.SimpleType";
   
  -        pw.println("public class " + className + extendsText +
  +        // Support abstract attribute by mapping to an abstract class
  +        String abstractText = "";
  +        if (node != null) {
  +            String abstractValue = Utils.getAttribute(node, "abstract");
  +            if (abstractValue != null && 
  +                abstractValue.equalsIgnoreCase("true")) {
  +                abstractText = "abstract ";
  +            }
  +        }
  +
  +        pw.println("public " + abstractText + "class " + className + extendsText +
                      " implements java.io.Serializable" + implementsText + " {");
   
           for (int i = 0; i < names.size(); i += 2) {
  
  
  
  1.2       +1 -1      xml-axis/java/test/wsdl/roundtrip/Investment.java
  
  Index: Investment.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/wsdl/roundtrip/Investment.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Investment.java   12 Feb 2002 22:10:19 -0000      1.1
  +++ Investment.java   20 Mar 2002 21:43:52 -0000      1.2
  @@ -65,7 +65,7 @@
    * @version   1.00  06 Feb 2002
    * @author    Brent Ulbricht
    */
  -public class Investment implements java.io.Serializable {
  +public abstract class Investment implements java.io.Serializable {
   
       public String name;
       private int id;
  
  
  


Reply via email to