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