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;