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 aj...@apache.org on 2007/06/16 01:33:49 UTC

svn commit: r547825 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/TypeTable.java

Author: ajith
Date: Fri Jun 15 16:33:48 2007
New Revision: 547825

URL: http://svn.apache.org/viewvc?view=rev&rev=547825
Log:
1. optimized the implementation a bit. We may need to do more of these bits of optimizations in future
2. Added some javadocs

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/TypeTable.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/TypeTable.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/TypeTable.java?view=diff&rev=547825&r1=547824&r2=547825
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/TypeTable.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/TypeTable.java Fri Jun 15 16:33:48 2007
@@ -1,8 +1,6 @@
 package org.apache.axis2.description.java2wsdl;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 import javax.xml.namespace.QName;
 import java.util.*;
@@ -25,19 +23,27 @@
 */
 
 public class TypeTable {
-    private HashMap simpleTypetoxsd;
-    private HashMap complexTypeMap;
-
-    private static final Log log = LogFactory.getLog(TypeTable.class);
+    
+    private static HashMap  simpleTypetoxsd;
     private static final QName ANY_TYPE = new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "anyType", "xs");
 
+    private HashMap complexTypeMap;
+
     public TypeTable() {
-        simpleTypetoxsd = new HashMap();
+        //complex type table is resetted every time this is
+        //instantiated
         complexTypeMap = new HashMap();
-        populateSimpleTypes();
     }
 
-    private void populateSimpleTypes() {
+    /* statically populate the simple type map  - this is not likely to
+    * change and we need not populate it over and over */
+    static{
+          populateSimpleTypes();
+    }
+
+    /* populate the simpletype hashmap */
+    private static void populateSimpleTypes() {
+        simpleTypetoxsd = new HashMap();
         //todo pls use the types from org.apache.ws.commons.schema.constants.Constants
         simpleTypetoxsd.put("int",
                 new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "int", "xs"));
@@ -120,6 +126,11 @@
                 new QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "base64Binary", "xs"));
     }
 
+    /**
+     * Return the schema type QName given the type class name
+     * @param typeName  the name of the type
+     * @return   the name of the simple type or null if it is not a simple type
+     */
     public QName getSimpleSchemaTypeName(String typeName) {
         QName qName = (QName) simpleTypetoxsd.get(typeName);
         if(qName == null){
@@ -130,20 +141,25 @@
         return qName;
     }
 
+    /**
+     * Return whether the given type is a simple type or not
+     * @param typeName the name of the type
+     * @return  true if the type is a simple type
+     */
     public boolean isSimpleType(String typeName) {
-        Iterator keys = simpleTypetoxsd.keySet().iterator();
-        while (keys.hasNext()) {
-            String s = (String) keys.next();
-            if (s.equals(typeName)) {
-                return true;
-            }
-        }
-        if(typeName.startsWith("java.lang")||typeName.startsWith("javax.")){
+        
+        if (simpleTypetoxsd.keySet().contains(typeName)){
+            return true;
+        }else if(typeName.startsWith("java.lang")||typeName.startsWith("javax.")){
             return true;
         }
         return false;
     }
 
+    /**
+     * Return the complex type map
+     * @return  the map with complex types
+     */
     public Map getComplexSchemaMap() {
         return complexTypeMap;
     }
@@ -156,6 +172,12 @@
         return (QName) complexTypeMap.get(name);
     }
 
+    /**
+     * Get the qname for a type
+     * first try the simple types if not try the complex types
+     * @param typeName  name of the type
+     * @return  the Qname for this type
+     */
     public QName getQNamefortheType(String typeName) {
         QName type = getSimpleSchemaTypeName(typeName);
         if (type == null) {



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org