dushshantha    2005/05/11 04:18:37

  Modified:    c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp
                        BeanParamWriter.java
               c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal
                        BeanParamWriter.java
  Log:
  Added support for 'choice' wsdl construct
  
  Revision  Changes    Path
  1.39      +16 -15    
ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
  
  Index: BeanParamWriter.java
  ===================================================================
  RCS file: 
/home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- BeanParamWriter.java      11 May 2005 07:14:05 -0000      1.38
  +++ BeanParamWriter.java      11 May 2005 11:18:37 -0000      1.39
  @@ -212,9 +212,7 @@
           writer.write("\t}\n\n");
   
           String arrayType;
  -        
  -        boolean firstIfWritten=false;
  -        
  +             boolean firstIfWritten=false;
           for (int i = 0; i < attribs.length; i++)
           {
                        
  @@ -224,14 +222,16 @@
                        
                        if(attribs[i].getChoiceElement())
                        {
  -                             if(!firstIfWritten){
  +                             if(!firstIfWritten)
  +                             {
                                        writer.write("\tif");
                                        firstIfWritten=true;
                                }
  -                             else{
  +                             else
  +                             {
                                        writer.write("\telse if");
                                }
  -                             
  +
                                writer.write("(param->" + 
attribs[i].getParamNameAsMember()+ ")\n\t{\n\t");
                        }
                        
//..............................................................................
  @@ -427,11 +427,10 @@
                //Dushshantha:
                //peekCalled boolean variable checks whether the Line 
                //const char* choiceName=pIWSDZ->peekNextElementName(); has 
been wriiten in the generated cade.
  -             boolean peekCalled=false;
  -        
  -        boolean firstIfWritten=false;
  -             
  -             for (int i = 0; i < attribs.length; i++)
  +             boolean peekCalled = false;
  +        boolean firstIfWritten = false;
  +
  +        for (int i = 0; i < attribs.length; i++)
           {
               //Dushshantha:
               //if the attribute is a choice
  @@ -444,16 +443,18 @@
                                        writer.write("\tconst char* 
choiceName=pIWSDZ->peekNextElementName();\n");
                                        peekCalled=true;
                                }
  -                             
  -                             if(!firstIfWritten){
  +
  +                             if(!firstIfWritten)
  +                             {
                                        writer.write("\tif");
                                        firstIfWritten=true;
                                }
  -                             else{
  +                             else
  +                             {
                                        writer.write("\telse if");
                                }
                                
  -                             writer.write("(strcmp(choiceName,\"" + 
attribs[i].getParamNameAsMember()+ "\")==0)\n\t{\n\t");
  +                             writer.write("\tif(strcmp(choiceName,\"" + 
attribs[i].getParamNameAsMember()+ "\")==0)\n\t{\n\t");
                                                                                
                
               }
                //.............................................
  
  
  
  1.68      +27 -18    
ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java
  
  Index: BeanParamWriter.java
  ===================================================================
  RCS file: 
/home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- BeanParamWriter.java      11 May 2005 07:14:05 -0000      1.67
  +++ BeanParamWriter.java      11 May 2005 11:18:37 -0000      1.68
  @@ -183,13 +183,16 @@
                        
                        if(attribs[i].getChoiceElement())
                        {
  -                             if(!firstIfWritten){
  +                             if(!firstIfWritten)
  +                             {
                                        writer.write("\tif");
                                        firstIfWritten=true;
                                }
  -                             else{
  +                             else
  +                             {
                                        writer.write("\telse if");
                                }
  +
                                writer.write("(param->" + 
attribs[i].getParamNameAsMember()+ ")\n\t{\n\t");
                        }
                        
//..............................................................................
  @@ -371,8 +374,8 @@
                
                
                boolean peekCalled=false;
  -             boolean firstIfWritten=false;
  -        
  +        boolean firstIfWritten=false;
  +
                for (int i = 0; i < attribs.length; i++)
                {
                        //Dushshantha:
  @@ -385,13 +388,17 @@
                                        writer.write("\tconst char* 
choiceName=pIWSDZ->peekNextElementName();\n");
                                        peekCalled=true;
                                }
  -                             if(!firstIfWritten){
  +
  +                             if(!firstIfWritten)
  +                             {
                                        writer.write("\tif");
                                        firstIfWritten=true;
                                }
  -                             else{
  +                             else
  +                             {
                                        writer.write("\telse if");
                                }
  +                             
                                writer.write("(strcmp(choiceName,\"" + 
attribs[i].getParamNameAsMember()+ "\")==0)\n\t{\n\t");
                                                                                
                
                        }
  @@ -606,7 +613,8 @@
                writer.write("\n"+classname+"::"+classname+"()\n{\n");
                writer.write("\t/*do not allocate memory to any pointer members 
here\n\t because deserializer will allocate memory anyway. */\n");
                for(int i = 0; i< attribs.length;i++){
  -                     if (attribs[i].isArray()){
  +                     if (attribs[i].isArray())
  +                     {
                                
                                /**
                                 * Dushshantha:
  @@ -615,25 +623,26 @@
                                 * Memory should be allocated for that.
                                 */
                                
  -                             if(attribs[i].getChoiceElement()){
  +                             if(attribs[i].getChoiceElement())
  +                             {
                                        
writer.write("\t"+attribs[i].getParamNameAsMember()+" = new 
"+CUtils.getBasicArrayNameforType(attribs[i].getTypeName())+"();\n");
                                        
writer.write("\t"+attribs[i].getParamNameAsMember()+"->m_Array = 0;\n");
                                        
writer.write("\t"+attribs[i].getParamNameAsMember()+"->m_Size = 0;\n");
                                }
                                
  -                             else{
  -                             
writer.write("\t"+attribs[i].getParamNameAsMember()+".m_Array = 0;\n");
  -                             
writer.write("\t"+attribs[i].getParamNameAsMember()+".m_Size = 0;\n");
  +                             else
  +                             {
  +                                     
writer.write("\t"+attribs[i].getParamNameAsMember()+".m_Array = 0;\n");
  +                                     
writer.write("\t"+attribs[i].getParamNameAsMember()+".m_Size = 0;\n");
                                }
                        }
  -                     else if (!attribs[i].isSimpleType()){
  +                     else if (!attribs[i].isSimpleType())
  +                     {
                                
writer.write("\t"+attribs[i].getParamNameAsMember()+"=0;\n");
  -                     } else {
  -                             /* Needed for shared libraries */
  -                         if(attribs[i].getChoiceElement())
  -                             writer.write("\tmemset( " + 
attribs[i].getParamNameAsMember() + ", 0, sizeof( " + attribs[i].getTypeName() 
+ "));\n");
  -                             else
  -                                     writer.write("\tmemset( &" + 
attribs[i].getParamNameAsMember() + ", 0, sizeof( " + attribs[i].getTypeName() 
+ "));\n");
  +                     } 
  +                                             
  +                     else{
  +                             writer.write("\tmemset( &" + 
attribs[i].getParamNameAsMember() + ", 0, sizeof( " + attribs[i].getTypeName() 
+ "));\n");
                        }
                }                       
                writer.write("}\n");
  
  
  

Reply via email to