protected void writeReset()

in src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java [1205:1282]


    protected void writeReset(boolean forConstructor) throws WrapperFault
    {
        try
        {
            if (!forConstructor)
            {
                CUtils.printMethodComment(c_writer, "Method to initialize objects of class " + c_classname + ".");
            
                c_writer.write("void " + c_classname + "::\nreset()\n{\n");
            }

            int anyCounter = 0;
            
            for(int i = 0; i< attribs.length;i++)
            {
                String name = attribs[i].getParamNameAsMember();
                String typename = attribs[i].getTypeName();
                
                Type type = attribs[i].getType();
                boolean isPointerType = false;
                if (type.isSimpleType())
                    isPointerType = CUtils.isPointerType(CUtils.getSimpleType(type.getBaseType())); 
                else
                    isPointerType = CUtils.isPointerType(typename);
                
                if (attribs[i].isAnyElement())
                {                    
                    anyCounter += 1;
                    name  = "any" + Integer.toString(anyCounter);
                    
                    // TODO remove and replace with simple delete!
                    if (!forConstructor)
                    {
                        c_writer.write("\tif ("+name+") \n\t{\n");
                        c_writer.write("\t\tfor (int i=0; i<"+name+"->_size; i++)\n");
                        c_writer.write("\t\t\tdelete [] "+name+"->_array[i];\n");
                        c_writer.write("\t\tdelete "+name+";\n");
                        c_writer.write("\t}\n");
                    }
                    c_writer.write("\t" + name + "= NULL;\n\n");
                }
                else if(attribs[i].isArray())
                {
                    if (!forConstructor)
                        c_writer.write("\tdelete " + name + ";\n");
                    c_writer.write("\t"+ name + " = NULL;\n\n");
                }
                else if (!(attribs[i].isSimpleType() || attribs[i].getType().isSimpleType()))
                {
                    if (!forConstructor)
                        c_writer.write("\tdelete " + name + ";\n");
                    c_writer.write("\t" + name + "= NULL;\n\n");
                }
                else if (isPointerType || isElementNillable(i) || isElementOptional(i) 
                        || attribs[i].getChoiceElement() || attribs[i].getAllElement())
                {
                    if (!forConstructor)
                    {
                        c_writer.write("\tif(__axis_deepcopy_" + name + ")\n");
                        c_writer.write("\t\tdelete ");
                        if (isPointerType)
                            c_writer.write("[] ");
                        c_writer.write(name + ";\n");
                    }
                    
                    c_writer.write("\t" + name + " = NULL;\n");
                    c_writer.write("\t__axis_deepcopy_" + name + " = false;\n\n");
                }
            }
            
            if (!forConstructor)
                c_writer.write("}\n");
        } 
        catch (IOException e)
        {
            throw new WrapperFault(e);
        }
    }