Author: nadiramra
Date: Sat Jul  8 14:08:48 2006
New Revision: 420190

URL: http://svn.apache.org/viewvc?rev=420190&view=rev
Log:
Stage 1: Infrastructure to handle generation of unique names in order to better 
handle the
generation of anonymous type. 

Modified:
    
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java

Modified: 
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java
URL: 
http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java?rev=420190&r1=420189&r2=420190&view=diff
==============================================================================
--- 
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java 
(original)
+++ 
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java 
Sat Jul  8 14:08:48 2006
@@ -97,7 +97,29 @@
     /* Should this type be generated or not */
     /* this value is currently only used in limited places. usually we use the 
">" symbol */
     private boolean generated;
-
+    
+    /* Is anonymous type? qname.localname is checked, and if starts with '>', 
then true */
+    private boolean isAnonymous = false;
+    
+    /* Has type been exposed - only valid for anonymous types */
+    private boolean anonymousTypeExposed = false;
+    
+    public boolean isAnonymous()
+    {
+        return isAnonymous;
+    }
+    
+    public void exposeAnonymousType()
+    {
+        // Exposing anonymous type means removing starting '>' characters.
+        if (isAnonymous && !anonymousTypeExposed)
+        {
+            languageSpecificName = CUtils.getUniqueName(languageSpecificName);
+            
+            name = new QName(name.getNamespaceURI(), languageSpecificName);
+            anonymousTypeExposed = true;
+        }
+    }
 
 
     public Type(QName name, String languageSpecificName, boolean hasOrder, 
String language)
@@ -126,7 +148,7 @@
                 this.languageSpecificName = 
TypeMap.getBasicTypeClass4qname(name);
         }
 
-        //if it is not a simple type genarate the name using usual QName -> 
language specific name mapping
+        //if it is not a simple type try name using usual QName -> language 
specific name mapping
         if (this.languageSpecificName == null)
             this.languageSpecificName = qname2LSN();
         else
@@ -150,8 +172,12 @@
                         this.languageSpecificName.replaceAll(">", "_");
                 }
             }
-        }
+        }     
         
+        // Indicate whether type is anonymous. Anonymous type start with '>'.
+        if (this.languageSpecificName.charAt(0) == '>')
+            isAnonymous = true;
+                            
         this.attribOrder = new Vector();
 
         if 
(name.getNamespaceURI().equals(WrapperConstants.APACHE_XMLSOAP_NAMESPACE) && 
@@ -448,6 +474,7 @@
         }
         else
         {
+            str = str + "isAnonymous =" + isAnonymous + "\n";
             str = str + "isArray =" + isArray + "\n";
             str = str + "Elements[\n";
             Iterator c = elements.values().iterator();



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to