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 na...@apache.org on 2008/01/08 02:05:27 UTC

svn commit: r609826 - /webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java

Author: nadiramra
Date: Mon Jan  7 17:05:23 2008
New Revision: 609826

URL: http://svn.apache.org/viewvc?rev=609826&view=rev
Log:
Simplify restrictor function and fix a bug where first entry was not consumed.

Modified:
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java?rev=609826&r1=609825&r2=609826&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java Mon Jan  7 17:05:23 2008
@@ -1293,62 +1293,42 @@
 
     protected void writeRestrictionCheckerFunction() throws WrapperFault
     {
+        //TODO write code to check the restrictions.
         try
         {
             CUtils.printMethodComment(writer, "Function used to check whether object has allowed values. Not implemented yet.");
             
-            writer.write("int Check_Restrictions_" + classname + "(" + classname + " value)\n");
-            
-            //TODO write code to check the restrictions. 
+            boolean isPtrType = CUtils.isPointerType( CUtils.getclass4qname( type.getBaseType()));
             
+            writer.write("int Check_Restrictions_" + classname + "(" + classname + " value)\n"); 
             writer.write("{\n");
-            
-            if( CUtils.isPointerType( CUtils.getclass4qname( type.getBaseType())))
+
+            Iterator i = type.getEnumerationdata().iterator();
+            if (i.hasNext())
             {
-                writer.write( "// String type\n");
-                writer.write( "// Number of " + classname + " elements = " + (type.getEnumerationdata().size() - 1) + "\n");
-                
-                Iterator i = type.getEnumerationdata().iterator();
-                int iIndex = 0;
+                // The first entry is the base type...consume it.
+                i.next();
+                int iIndex=0;
                 
                 while( i.hasNext())
                 {
                     if( iIndex == 0)
-                        writer.write( "//\tif( ");
+                    {
+                        writer.write( "//\tif (");
+                        iIndex++;
+                    }
                     else
                         writer.write( " ||\n//\t    ");
                     
                     QName qnElement = (QName) i.next();
-                    writer.write( "!strcmp( value, " + classname+ "_" + qnElement.getNamespaceURI() + ")");
-                    iIndex++;
-                }
-                
-                writer.write( "//)\n//\t{\n");
-                writer.write( "//\t\treturn 1;\n");
-                writer.write( "//\t}\n");
-            }
-            else
-            {
-                writer.write( "// Non-string type\n");
-                writer.write( "// Number of " + classname + " enums = " + (type.getEnumerationdata().size() - 1) + "\n");
-                
-                Iterator i = type.getEnumerationdata().iterator();
-                int iIndex = 0;
-                
-                while( i.hasNext())
-                {
-                    if( iIndex == 0)
-                        writer.write( "//\tif( ");
-                    else
-                        writer.write( " ||\n//\t    ");
                     
-                    QName qnElement = (QName) i.next();
-                    writer.write( "value == ENUM" + classname.toUpperCase()+ "_" 
-                            + qnElement.getNamespaceURI());
-                    iIndex++;
+                    if (isPtrType)
+                        writer.write( "!strcmp( value, " + classname+ "_" + qnElement.getNamespaceURI() + ")");
+                    else
+                        writer.write( "value == ENUM" + classname.toUpperCase()+ "_" + qnElement.getNamespaceURI());
                 }
                 
-                writer.write( "//)\n//\t{\n");
+                writer.write( ")\n//\t{\n");
                 writer.write( "//\t\treturn 1;\n");
                 writer.write( "//\t}\n");
             }
@@ -1359,7 +1339,7 @@
         catch (IOException e)
         {
             throw new WrapperFault(e);
-        }
+        } 
     }    
 
     protected File getFilePath(boolean useServiceName) throws WrapperFault



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