You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2005/12/30 05:05:04 UTC

svn commit: r359980 - in /webservices/axis2/trunk/java/modules: codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java xml/src/org/apache/axis2/om/impl/llom/OMStAXWrapper.java

Author: dims
Date: Thu Dec 29 20:04:59 2005
New Revision: 359980

URL: http://svn.apache.org/viewcvs?rev=359980&view=rev
Log:
- set a higher default size for the array list default of 10 items is VERY low.
- tiny cleanup in OMStAXWrapper 
- generate a good looking namespace prefix for ADB 


Modified:
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
    webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMStAXWrapper.java

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl?rev=359980&r1=359979&r2=359980&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl Thu Dec 29 20:04:59 2005
@@ -200,7 +200,7 @@
         <!-- First loop creates arrayLists for handling arrays -->
         <xsl:for-each select="property">
             <xsl:if test="@array">
-                java.util.ArrayList list<xsl:value-of select="position()"></xsl:value-of> = new java.util.ArrayList();
+                java.util.ArrayList list<xsl:value-of select="position()"></xsl:value-of> = new java.util.ArrayList(5000);
             </xsl:if>
         </xsl:for-each>
         while(!done){

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java?rev=359980&r1=359979&r2=359980&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java Thu Dec 29 20:04:59 2005
@@ -308,7 +308,7 @@
         XSLTUtils.addAttribute(model, "originalName", originalName, rootElt);
         XSLTUtils.addAttribute(model, "package", packageName, rootElt);
         XSLTUtils.addAttribute(model, "nsuri", qName.getNamespaceURI(), rootElt);
-        XSLTUtils.addAttribute(model, "nsprefix", qName.getPrefix(), rootElt);
+        XSLTUtils.addAttribute(model, "nsprefix", getPrefixForURI(qName.getNamespaceURI(), qName.getPrefix()), rootElt);
 
         if (!wrapClasses) {
             XSLTUtils.addAttribute(model, "unwrapped", "yes", rootElt);
@@ -490,5 +490,55 @@
         outStream.close();
 
         PrettyPrinter.prettify(outputFile);
+    }
+
+    /**
+     * Get a prefix for a namespace URI.  This method will ALWAYS
+     * return a valid prefix - if the given URI is already mapped in this
+     * serialization, we return the previous prefix.  If it is not mapped,
+     * we will add a new mapping and return a generated prefix of the form
+     * "ns<num>".
+     *
+     * @param uri is the namespace uri
+     * @return prefix
+     */
+    public String getPrefixForURI(String uri) {
+        return getPrefixForURI(uri, null);
+    }
+
+    /**
+     * Last used index suffix for "ns"
+     */
+    private int lastPrefixIndex = 1;
+
+    /**
+     * Map of namespaces URI to prefix(es)
+     */
+    HashMap mapURItoPrefix = new HashMap();
+    HashMap mapPrefixtoURI = new HashMap();
+
+    /**
+     * Get a prefix for the given namespace URI.  If one has already been
+     * defined in this serialization, use that.  Otherwise, map the passed
+     * default prefix to the URI, and return that.  If a null default prefix
+     * is passed, use one of the form "ns<num>"
+     */
+    public String getPrefixForURI(String uri, String defaultPrefix) {
+        if ((uri == null) || (uri.length() == 0))
+            return null;
+        String prefix = (String) mapURItoPrefix.get(uri);
+        if (prefix == null) {
+            if (defaultPrefix == null || defaultPrefix.length() == 0) {
+                prefix = "ns" + lastPrefixIndex++;
+                while (mapPrefixtoURI.get(prefix) != null) {
+                    prefix = "ns" + lastPrefixIndex++;
+                }
+            } else {
+                prefix = defaultPrefix;
+            }
+            mapPrefixtoURI.put(prefix, uri);
+            mapURItoPrefix.put(uri, prefix);
+        }
+        return prefix;
     }
 }

Modified: webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMStAXWrapper.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMStAXWrapper.java?rev=359980&r1=359979&r2=359980&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMStAXWrapper.java (original)
+++ webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMStAXWrapper.java Thu Dec 29 20:04:59 2005
@@ -817,21 +817,20 @@
      * @see javax.xml.stream.XMLStreamReader#getElementText()
      */
     public String getElementText() throws XMLStreamException {
-        String returnText = "";
         if (parser != null) {
             try {
-                returnText = parser.getElementText();
+                return parser.getElementText();
             } catch (XMLStreamException e) {
                 throw new OMStreamingException(e);
             }
         } else {
             if (currentNode.getType() == OMNode.ELEMENT_NODE) {
-                returnText = ((OMElement)currentNode).getText();
+                return ((OMElement)currentNode).getText();
             }else if (currentNode.getType() == OMNode.TEXT_NODE){
-                 returnText = ((OMText)currentNode).getText();
+                 return ((OMText)currentNode).getText();
             }
         }
-        return returnText;
+        return "";
     }
 
     /**