protected void generateToStringBody()

in activemq-cpp-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/commands/CommandSourceGenerator.java [282:375]


    protected void generateToStringBody( PrintWriter out ) {

        out.println("    ostringstream stream;" );
        out.println("");

        if( getBaseClassName().equals( "BaseCommand" ) ) {
            out.println("    stream << \""+getClassName()+" { \"" );
            out.println("           << \"commandId = \" << this->getCommandId() << \", \"");
            out.println("           << \"responseRequired = \" << boolalpha << this->isResponseRequired();");

            if( getProperties().size() > 0 ) {
                out.println("    stream << \", \";");
            }
        } else {
            out.println("    stream << \""+getClassName()+" { \";" );
        }

        int length = getProperties().size();
        int count = 0;

        for( JProperty property : getProperties() ) {

            String type = toCppType(property.getType());
            String propertyName = property.getSimpleName();
            String parameterName = decapitalize(propertyName);
            String getter = property.getGetter().getSimpleName();

            if( property.getType().getSimpleName().equals("ByteSequence") ) {

                out.println("    stream << \""+propertyName+" = \";");
                out.println("    if (this->"+getter+"().size() > 0) {");
                out.println("        stream << \"[size=\" << this->" + getter + "().size() << \"]\";");
                out.println("    } else {");
                out.println("        stream << \"NULL\";");
                out.println("    }");

            } else if( type.equals("unsigned char") ){
                out.println("    stream << \""+propertyName+" = \" << (int)this->"+getter+"();");

            } else if( property.getType().isPrimitiveType() || type.equals("std::string") ){

                out.println("    stream << \""+propertyName+" = \" << this->"+getter+"();");

            } else if( property.getType().isArrayType() &&
                       !property.getType().getArrayComponentType().isPrimitiveType() ) {

                out.println("    stream << \""+propertyName+" = \";");
                out.println("    if (this->"+getter+"().size() > 0) {");
                out.println("        stream << \"[\";");
                out.println("        for (size_t i" + parameterName + " = 0; i" + parameterName + " < this->"+getter+"().size(); ++i" + parameterName + ") {");
                out.println("            if (this->"+getter+"()[i"+parameterName+"] != NULL) {");
                out.println("                stream << this->"+getter+"()[i"+parameterName+"]->toString() << \", \";");
                out.println("            } else {");
                out.println("                stream << \"NULL\" << \", \";");
                out.println("            }");
                out.println("        }");
                out.println("        stream << \"]\";");
                out.println("    } else {");
                out.println("        stream << \"NULL\";");
                out.println("    }");

            } else if( property.getType().isArrayType() &&
                       property.getType().getArrayComponentType().isPrimitiveType() ) {

                out.println("    stream << \""+propertyName+" = \";");
                out.println("    if (this->"+getter+"().size() > 0) {");
                out.println("        stream << \"[\";");
                out.println("        for (size_t i" + parameterName + " = 0; i" + parameterName + " < this->"+getter+"().size(); ++i" + parameterName + ") {");
                out.println("            stream << this->"+getter+"()[i"+parameterName+"] << \",\";");
                out.println("        }");
                out.println("        stream << \"]\";");
                out.println("    } else {");
                out.println("        stream << \"NULL\";");
                out.println("    }");

            } else {

                out.println("    stream << \""+propertyName+" = \";" );
                out.println("    if (this->"+getter+"() != NULL) {");
                out.println("        stream << this->"+getter+"()->toString();");
                out.println("    } else {");
                out.println("        stream << \"NULL\";");
                out.println("    }");
            }

            if( ++count < length ) {
                out.println("    stream << \", \";");
            }
        }

        out.println("    stream << \" }\";" );
        out.println("");
        out.println("    return stream.str();");
    }