Return-Path: Delivered-To: apmail-ws-axis-cvs-archive@www.apache.org Received: (qmail 93884 invoked from network); 24 Mar 2004 17:36:43 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 24 Mar 2004 17:36:43 -0000 Received: (qmail 82798 invoked by uid 500); 24 Mar 2004 17:36:36 -0000 Delivered-To: apmail-ws-axis-cvs-archive@ws.apache.org Received: (qmail 82591 invoked by uid 500); 24 Mar 2004 17:36:34 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 82578 invoked from network); 24 Mar 2004 17:36:34 -0000 Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by daedalus.apache.org with SMTP; 24 Mar 2004 17:36:34 -0000 Received: (qmail 93793 invoked by uid 1203); 24 Mar 2004 17:36:37 -0000 Date: 24 Mar 2004 17:36:37 -0000 Message-ID: <20040324173637.93792.qmail@minotaur.apache.org> From: dims@apache.org To: ws-axis-cvs@apache.org Subject: cvs commit: ws-axis/java/src/org/apache/axis/wsdl/toJava JavaBeanWriter.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N dims 2004/03/24 09:36:37 Modified: java/src/org/apache/axis/wsdl/symbolTable SchemaUtils.java java/src/org/apache/axis/wsdl/toJava JavaBeanWriter.java Log: Fix for AXIS-1262 - Pulling Javadoc from from Danno Ferrin Revision Changes Path 1.38 +50 -5 ws-axis/java/src/org/apache/axis/wsdl/symbolTable/SchemaUtils.java Index: SchemaUtils.java =================================================================== RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/symbolTable/SchemaUtils.java,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- SchemaUtils.java 16 Mar 2004 15:14:29 -0000 1.37 +++ SchemaUtils.java 24 Mar 2004 17:36:37 -0000 1.38 @@ -430,6 +430,55 @@ } /** + * Returns the complete text of the child xsd:annotation/xsd:documentation + * element from the provided node. Only the first annotation element and + * the first documentation element in the annotation element will be used. + * + * @param root Parent node. + * @param path Path of element names to text of interest, delimited by "/". + */ + public static String getAnnotationDocumentation(Node typeNode) { + Node annotationNode = typeNode.getFirstChild(); + while (annotationNode != null) { + if (isXSDNode(annotationNode, "annotation")) { + break; + } + annotationNode = annotationNode.getNextSibling(); + } + Node documentationNode; + if (annotationNode != null) { + documentationNode = annotationNode.getFirstChild(); + while (documentationNode != null) { + if (isXSDNode(documentationNode, "documentation")) { + break; + } + documentationNode = documentationNode.getNextSibling(); + } + } else { + documentationNode = null; + } + + // should have found the node if it exists + String text = ""; + if (documentationNode != null) { + NodeList children = documentationNode.getChildNodes(); + if (children != null) { + for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child != null) { + if (child.getNodeName() != null + && (child.getNodeName().equals("#text") + || child.getNodeName().equals("#cdata-section"))) { + text += child.getNodeValue(); + } + } + } + } + } + return text; + } + + /** * Invoked by getContainedElementDeclarations to get the child element types * and child element names underneath a Sequence Node * @@ -571,11 +620,7 @@ QName nodeName = Utils.getNodeNameQName(elementNode); BooleanHolder forElement = new BooleanHolder(); String comments = null; - try { - comments = getTextByPath(elementNode, "annotation/documentation"); - } catch (DOMException e) { - // no comments - } + comments = getAnnotationDocumentation(elementNode); // The type qname is used to locate the TypeEntry, which is then // used to retrieve the proper java name of the type. 1.58 +13 -9 ws-axis/java/src/org/apache/axis/wsdl/toJava/JavaBeanWriter.java Index: JavaBeanWriter.java =================================================================== RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/wsdl/toJava/JavaBeanWriter.java,v retrieving revision 1.57 retrieving revision 1.58 diff -u -r1.57 -r1.58 --- JavaBeanWriter.java 16 Mar 2004 15:14:29 -0000 1.57 +++ JavaBeanWriter.java 24 Mar 2004 17:36:37 -0000 1.58 @@ -154,13 +154,13 @@ try { - String comments = SchemaUtils.getTextByPath(type.getNode(), "annotation/documentation"); + String comments = SchemaUtils.getAnnotationDocumentation(type.getNode()); comments = getJavadocDescriptionPart(comments, false); if (comments != null && comments.trim().length() > 0) { pw.println(); pw.println("/**"); - pw.println(" * " + comments); + pw.println(comments); pw.println(" */"); } } @@ -440,7 +440,8 @@ // Declare the bean element if (comments != null && comments.trim().length() > 0) { - String flatComments = getJavadocDescriptionPart(comments, true); + String flatComments = getJavadocDescriptionPart(comments, false).substring(3); + // it will be flat if it fits on one line pw.println(" /** " + flatComments.trim() + " */"); } pw.print(" private " + typeName + " " + variable + ";"); @@ -804,14 +805,18 @@ get = "is"; } + String comment = getJavadocDescriptionPart(documentation, false); + if (comment.length() > 3) { + // remove the " *" at the front of the first line + comment = comment.substring(2); + } if (enableGetters) { try { - String comments = "Gets the " + name + " value for this " + getClassName() + "."; pw.println(); pw.println(" /**"); - pw.println(" * " + comments); + pw.println(" * Gets the " + name + " value for this " + getClassName() + "."); pw.println(" * "); - pw.println(" * @return " + name + " " + getJavadocDescriptionPart(documentation, true)); + pw.println(" * @return " + name + comment); pw.println(" */"); } catch (DOMException e) { // no comment @@ -832,12 +837,11 @@ if (enableSetters) { try { - String comments = "Sets the " + name + " value for this " + getClassName() + "."; pw.println(); pw.println(" /**"); - pw.println(" * " + comments); + pw.println(" * Sets the " + name + " value for this " + getClassName() + "."); pw.println(" * "); - pw.println(" * @param " + name + " " + getJavadocDescriptionPart(documentation, true)); + pw.println(" * @param " + name + comment); pw.println(" */"); } catch (DOMException e)