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);
}
}