Hi Rich!
Hm... I think you perhaps forgot to add the JavaBeanHelperWriter class to CVS....? --Glen > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > Sent: Thursday, March 21, 2002 5:27 PM > To: [EMAIL PROTECTED] > Subject: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava > Emitter.java JavaBeanWriter.java JavaTypeWriter.java JavaWriter.java > NoopWriterFactory.java > > > scheu 02/03/21 14:27:02 > > Modified: java/src/org/apache/axis/utils resources.properties > java/src/org/apache/axis/wsdl/toJava Emitter.java > JavaBeanWriter.java JavaTypeWriter.java > JavaWriter.java NoopWriterFactory.java > Log: > I restructured some of the code in the parser. > > JavaBeanHelperWriter - This is a new class that > is used to emit the Bean Meta data. The > meta data code was moved to this class from > JavaBeanWriter. Currently this code is emitted > into the bean class. In the future, this will > be changed so that it can be emitted into the > bean class or a separate helper class. > > JavaBeanWriter - This class has been changed so > that it now contains the code to emit only the > bean logical methods. It then invokes > the JavaBeanHelperWriter to emit the meta data. > > I also cleaned up some up some of this code to make the > classes a little easier to extend. > > Revision Changes Path > 1.82 +1 -0 > xml-axis/java/src/org/apache/axis/utils/resources.properties > > Index: resources.properties > =================================================================== > RCS file: > /home/cvs/xml-axis/java/src/org/apache/axis/utils/resources.pr > operties,v > retrieving revision 1.81 > retrieving revision 1.82 > diff -u -r1.81 -r1.82 > --- resources.properties 21 Mar 2002 19:10:10 -0000 1.81 > +++ resources.properties 21 Mar 2002 22:27:02 -0000 1.82 > @@ -199,6 +199,7 @@ > genStub00=Generating client-side stub > genTest00=Generating service test case > genType00=Generating type implementation > +genHelper00=Generating helper implementation > genUndeploy00=Generating undeployment document > genUndeployFail00=Failed to write undeployment document > getProxy00=Use to get a proxy class for {0} > > > > 1.27 +1 -0 > xml-axis/java/src/org/apache/axis/wsdl/toJava/Emitter.java > > Index: Emitter.java > =================================================================== > RCS file: > /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Emitter.java,v > retrieving revision 1.26 > retrieving revision 1.27 > diff -u -r1.26 -r1.27 > --- Emitter.java 19 Mar 2002 15:42:02 -0000 1.26 > +++ Emitter.java 21 Mar 2002 22:27:02 -0000 1.27 > @@ -134,6 +134,7 @@ > } // ctor > > public SymbolTable getSymbolTable() { return symbolTable;} > + public WriterFactory getWriterFactory() { return > writerFactory;} > /** > * Call this method if you have a uri for the WSDL document > * @param String wsdlURI the location of the WSDL file. > > > > 1.3 +16 -99 > 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/JavaBe > anWriter.java,v > retrieving revision 1.2 > retrieving revision 1.3 > diff -u -r1.2 -r1.3 > --- JavaBeanWriter.java 20 Mar 2002 21:43:52 -0000 1.2 > +++ JavaBeanWriter.java 21 Mar 2002 22:27:02 -0000 1.3 > @@ -71,7 +71,8 @@ > private Vector elements; > private Vector attributes; > private TypeEntry extendType; > - private HashMap elementMappings = null; > + protected JavaWriter helper; > + protected Vector names = new Vector(); > > /** > * Constructor. > @@ -79,19 +80,23 @@ > * @param type The type representing this class > * @param elements Vector containing the Type and > name of each property > * @param extendType The type representing the > extended class (or null) > + * @param attributes Vector containing the attribute > types and names > + * @param helper Helper class writer > > */ > protected JavaBeanWriter( > Emitter emitter, > TypeEntry type, > Vector elements, > TypeEntry extendType, > - Vector attributes) { > + Vector attributes, > + JavaWriter helper) { > super(emitter, type, "", "java", > JavaUtils.getMessage("genType00"), "complexType"); > this.type = type; > this.elements = elements; > this.attributes = attributes; > this.extendType = extendType; > + this.helper = helper; > } // ctor > > /** > @@ -110,21 +115,12 @@ > } > > // We are only interested in the java names of the > types, so create a names list > - Vector names = new Vector(); > if (elements != null) { > for (int i = 0; i < elements.size(); i++) { > ElementDecl elem = (ElementDecl)elements.get(i); > TypeEntry type = elem.getType(); > String elemName = elem.getName().getLocalPart(); > String javaName = Utils.xmlNameToJava(elemName); > - if (!javaName.equals(elemName)) { > - // If we did some mangling, make sure > we'll write out the XML > - // the correct way. > - if (elementMappings == null) > - elementMappings = new HashMap(); > - > - elementMappings.put(javaName, elem.getName()); > - } > names.add(type.getName()); > names.add(javaName); > } > @@ -170,27 +166,6 @@ > pw.println(" public " + className + "() {"); > pw.println(" }"); > > - // The code used to generate a constructor that set > - // all of the properties. > - boolean fullConstructorGen = false; > - if (fullConstructorGen) { > - pw.println(); > - if (names.size() > 0) { > - pw.print(" public " + className + "("); > - for (int i = 0; i < names.size(); i += 2) { > - if (i != 0) pw.print(", "); > - String variable = (String) names.get(i + 1); > - pw.print((String) names.get(i) + " " + > variable); > - } > - pw.println(") {"); > - for (int i = 1; i < names.size(); i += 2) { > - String variable = (String) names.get(i); > - pw.println(" this." + variable > + " = " + variable + ";"); > - } > - pw.println(" }"); > - } > - } > - > pw.println(); > int j = 0; > for (int i = 0; i < names.size(); i += 2, j++) { > @@ -251,68 +226,6 @@ > } > } > > - // if we have attributes, create metadata function > which returns the > - // list of properties that are attributes instead > of elements > - > - if (attributes != null || elementMappings != null) { > - boolean wroteFieldType = false; > - pw.println(" // " + > JavaUtils.getMessage("typeMeta")); > - pw.println(" private static > org.apache.axis.description.TypeDesc typeDesc ="); > - pw.println(" new > org.apache.axis.description.TypeDesc();"); > - pw.println(); > - pw.println(" static {"); > - > - if (attributes != null) { > - for (int i = 0; i < attributes.size(); i += 2) { > - String attrName = (String) > attributes.get(i + 1); > - String fieldName = > Utils.xmlNameToJava(attrName); > - pw.print(" "); > - if (!wroteFieldType) { > - > pw.print("org.apache.axis.description.FieldDesc "); > - wroteFieldType = true; > - } > - pw.println("field = new > org.apache.axis.description.AttributeDesc();"); > - pw.println(" > field.setFieldName(\"" + fieldName + "\");"); > - if (!fieldName.equals(attrName)) { > - pw.print(" field.setXmlName("); > - pw.print("new > javax.xml.rpc.namespace.QName(null, \""); > - pw.println(attrName + "\"));"); > - } > - pw.println(" > typeDesc.addFieldDesc(field);"); > - } > - } > - > - if (elementMappings != null) { > - Iterator i = elementMappings.keySet().iterator(); > - while (i.hasNext()) { > - String fieldName = (String)i.next(); > - QName xmlName = > (QName)elementMappings.get(fieldName); > - pw.print(" "); > - if (!wroteFieldType) { > - > pw.print("org.apache.axis.description.FieldDesc "); > - wroteFieldType = true; > - } > - pw.println("field = new > org.apache.axis.description.ElementDesc();"); > - pw.println(" > field.setFieldName(\"" + fieldName + "\");"); > - pw.print( " > field.setXmlName(new javax.xml.rpc.namespace.QName(\""); > - pw.println(xmlName.getNamespaceURI() + > "\", \"" + > - xmlName.getLocalPart() + "\"));"); > - pw.println(" > typeDesc.addFieldDesc(field);"); > - } > - } > - > - pw.println(" };"); > - pw.println(); > - > - pw.println(" /**"); > - pw.println(" * " + > JavaUtils.getMessage("returnTypeMeta")); > - pw.println(" */"); > - pw.println(" public static > org.apache.axis.description.TypeDesc getTypeDesc() {"); > - pw.println(" return typeDesc;"); > - pw.println(" }"); > - pw.println(); > - } > - > // if this is a simple type, we need to emit a > toString and a string > // constructor > if (type.isSimpleType() && valueType != null) { > @@ -329,6 +242,14 @@ > pw.println(); > } > > + writeEqualsMethod(); > + > + helper.write(pw); > + pw.println("}"); > + pw.close(); > + } // writeFileBody > + > + protected void writeEqualsMethod() { > pw.println(" public boolean equals(Object obj) {"); > pw.println(" // compare elements"); > pw.println(" " + className + " other = (" > + className + ") obj;"); > @@ -372,9 +293,5 @@ > } > } > pw.println(" }"); > - > - pw.println("}"); > - pw.close(); > - } // writeOperation > - > + } > } // class JavaBeanWriter > > > > 1.9 +40 -5 > xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaTypeWriter.java > > Index: JavaTypeWriter.java > =================================================================== > RCS file: > /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaTy > peWriter.java,v > retrieving revision 1.8 > retrieving revision 1.9 > diff -u -r1.8 -r1.9 > --- JavaTypeWriter.java 19 Mar 2002 23:38:31 -0000 1.8 > +++ JavaTypeWriter.java 21 Mar 2002 22:27:02 -0000 1.9 > @@ -95,7 +95,7 @@ > Vector v = SchemaUtils.getEnumerationBaseAndValues( > node, symbolTable); > if (v != null) { > - typeWriter = new > JavaEnumTypeWriter(emitter, type, v); > + typeWriter = > getEnumTypeWriter(emitter, type, v); > } > else { > TypeEntry base = > SchemaUtils.getComplexElementExtensionBase( > @@ -108,8 +108,7 @@ > } > } > > - typeWriter = new > - JavaBeanWriter( > + typeWriter = getBeanWriter( > emitter, > type, > > SchemaUtils.getContainedElementDeclarations( > @@ -125,7 +124,7 @@ > // If the holder is needed (ie., something > uses this type as an out or inout > // parameter), instantiate the holder writer. > if (holderIsNeeded(type)) { > - holderWriter = new JavaHolderWriter(emitter, type); > + holderWriter = getHolderWriter(emitter, type); > } > } > } // ctor > @@ -134,8 +133,9 @@ > * Write all the service bindnigs: service and testcase. > */ > public void write() throws IOException { > - if (typeWriter != null) > + if (typeWriter != null) { > typeWriter.write(); > + } > if (holderWriter != null) { > holderWriter.write(); > } > @@ -149,4 +149,39 @@ > (Boolean) entry.getDynamicVar(HOLDER_IS_NEEDED); > return (holderIsNeeded != null && > holderIsNeeded.booleanValue()); > } // holderIsNeeded > + > + /** > + * getEnumWriter > + **/ > + protected JavaWriter getEnumTypeWriter(Emitter > emitter, TypeEntry type, Vector v) { > + return new JavaEnumTypeWriter(emitter, type, v); > + } > + > + /** > + * getBeanWriter > + **/ > + protected JavaWriter getBeanWriter(Emitter emitter, > TypeEntry type, > + Vector elements, TypeEntry base, > + Vector attributes) { > + JavaWriter helperWriter = > getBeanHelperWriter(emitter, type, elements, base, > + attributes); > + return new JavaBeanWriter(emitter, type, elements, > base, attributes, > + helperWriter); > + } > + > + /** > + * getHelperWriter > + **/ > + protected JavaWriter getBeanHelperWriter(Emitter > emitter, TypeEntry type, > + Vector elements, > TypeEntry base, > + Vector attributes) { > + return new JavaBeanHelperWriter(emitter, type, > elements, base, attributes); > + } > + > + /** > + * getHolderWriter > + **/ > + protected Writer getHolderWriter(Emitter emitter, > TypeEntry type) { > + return new JavaHolderWriter(emitter, type); > + } > } // class JavaTypeWriter > > > > 1.8 +21 -0 > xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriter.java > > Index: JavaWriter.java > =================================================================== > RCS file: > /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWr > iter.java,v > retrieving revision 1.7 > retrieving revision 1.8 > diff -u -r1.7 -r1.8 > --- JavaWriter.java 12 Mar 2002 16:34:54 -0000 1.7 > +++ JavaWriter.java 21 Mar 2002 22:27:02 -0000 1.8 > @@ -145,6 +145,27 @@ > } // ctor > > /** > + * Generate as an inner class > + */ > + public void write(PrintWriter pw) throws IOException { > + String packageDirName = namespaces.toDir(packageName); > + String path = packageDirName + fileName; > + String fqClass = packageName + "." + className; > + > + // Check for duplicates, probably the result of > namespace mapping > + if (emitter.fileInfo.getClassNames().contains(fqClass)) { > + throw new > IOException(JavaUtils.getMessage("duplicateClass00", fqClass)); > + } > + if (emitter.fileInfo.getFileNames().contains(path)) { > + throw new > IOException(JavaUtils.getMessage("duplicateFile00", path)); > + } > + > + emitter.fileInfo.add(path, fqClass, type); > + this.pw = pw; > + writeFileBody(); > + } > + > + /** > * Create the file, write the header, write the body. > */ > public void write() throws IOException { > > > > 1.2 +1 -1 > xml-axis/java/src/org/apache/axis/wsdl/toJava/NoopWriterFactory.java > > Index: NoopWriterFactory.java > =================================================================== > RCS file: > /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/NoopWr > iterFactory.java,v > retrieving revision 1.1 > retrieving revision 1.2 > diff -u -r1.1 -r1.2 > --- NoopWriterFactory.java 20 Feb 2002 17:17:36 -0000 1.1 > +++ NoopWriterFactory.java 21 Mar 2002 22:27:02 -0000 1.2 > @@ -107,7 +107,7 @@ > public Writer getWriter(TypeEntry type, SymbolTable > symbolTable) { > return new NoopWriter(); > } > - > + > public Writer getWriter(Definition definition, > SymbolTable symbolTable) { > return new NoopWriter(); > } > > > >