in activemq-cpp-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/commands/CommandSourceGenerator.java [27:199]
public void generate( PrintWriter out ) {
// Start with the license.
generateLicence(out);
populateBaseClassesSet();
populateIncludeFilesSet();
for( String include : getIncludeFiles() ) {
if( include != null ) {
out.println("#include "+include);
}
}
out.println("");
out.println("using namespace std;");
out.println("using namespace activemq;");
out.println("using namespace activemq::exceptions;");
out.println("using namespace activemq::commands;");
out.println("using namespace decaf::lang;");
out.println("using namespace decaf::lang::exceptions;");
if( isComparable() ) {
out.println("using namespace decaf::internal::util;");
}
out.println("");
out.println("/*");
out.println(" *");
out.println(" * Command code for OpenWire format for "+getClassName() );
out.println(" *");
out.println(" * NOTE!: This file is auto generated - do not modify!");
out.println(" * if you need to make a change, please see the Java Classes in the");
out.println(" * activemq-cpp-openwire-generator module");
out.println(" *");
out.println(" */");
out.println("");
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println(""+getClassName()+"::"+getClassName()+"() :" );
out.println(" " + generateInitializerList() + " {");
out.println("");
generateDefaultConstructorBody(out);
out.println("}");
out.println("");
if( isAssignable() ) {
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println(""+getClassName()+"::"+getClassName()+"(const "+getClassName()+"& other) :");
out.println(" " + generateInitializerList() + " {");
out.println("");
out.println(" this->copyDataStructure(&other);");
out.println("}");
out.println("");
}
generateAdditionalConstructors(out);
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println(""+getClassName()+"::~"+getClassName()+"() {");
generateDestructorBody(out);
out.println("}");
out.println("");
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println(getClassName()+"* "+getClassName()+"::cloneDataStructure() const {");
generateCloneDataStructureBody(out);
out.println("}");
out.println("");
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println("void "+getClassName()+"::copyDataStructure(const DataStructure* src) {");
out.println("");
out.println(" // Protect against invalid self assignment.");
out.println(" if (this == src) {");
out.println(" return;");
out.println(" }");
out.println("");
out.println(" const "+getClassName()+"* srcPtr = dynamic_cast<const "+getClassName()+"*>(src);");
out.println("");
out.println(" if (srcPtr == NULL || src == NULL) {");
out.println(" throw decaf::lang::exceptions::NullPointerException(");
out.println(" __FILE__, __LINE__,");
out.println(" \""+getClassName()+"::copyDataStructure - src is NULL or invalid\");");
out.println(" }");
out.println("");
if( getBaseClassName() != null ) {
out.println(" // Copy the data of the base class or classes");
out.println(" "+ getBaseClassName() +"::copyDataStructure(src);");
out.println("");
}
generateCopyDataStructureBody(out);
out.println("}");
out.println("");
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println("unsigned char "+getClassName()+"::getDataStructureType() const {");
out.println(" return "+getClassName()+"::ID_" + getClassName().toUpperCase() + ";");
out.println("}");
out.println("");
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println("std::string "+getClassName()+"::toString() const {");
out.println("");
generateToStringBody(out);
out.println("}");
out.println("");
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println("bool "+getClassName()+"::equals(const DataStructure* value) const {");
out.println("");
out.println(" if (this == value) {");
out.println(" return true;");
out.println(" }");
out.println("");
out.println(" const "+getClassName()+"* valuePtr = dynamic_cast<const "+getClassName()+"*>(value);");
out.println("");
out.println(" if (valuePtr == NULL || value == NULL) {");
out.println(" return false;");
out.println(" }");
out.println("");
generateEqualsBody(out);
if( getBaseClassName() != null ) {
out.println(" if (!"+ getBaseClassName() +"::equals(value)) {");
out.println(" return false;");
out.println(" }");
}
out.println(" return true;" );
out.println("}");
out.println("");
generatePropertyAccessors(out);
if( isComparable() ) {
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println("int " + getClassName() + "::compareTo(const "+getClassName()+"& value) const {");
out.println("");
out.println(" if (this == &value) {");
out.println(" return 0;");
out.println(" }");
out.println("");
generateCompareToBody(out);
out.println(" return 0;");
out.println("}");
out.println("");
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println("bool " + getClassName() + "::equals(const "+getClassName()+"& value) const {");
out.println(" return this->equals((const DataStructure*)&value);");
out.println("}");
out.println("");
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println("bool " + getClassName() + "::operator==(const "+getClassName()+"& value) const {");
out.println(" return this->compareTo(value) == 0;");
out.println("}");
out.println("");
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println("bool " + getClassName() + "::operator<(const "+getClassName()+"& value) const {");
out.println(" return this->compareTo(value) < 0;");
out.println("}");
out.println("");
}
if( isAssignable() ) {
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println(""+getClassName()+"& "+getClassName()+"::operator= (const "+getClassName()+"& other) {");
out.println(" this->copyDataStructure(&other);");
out.println(" return *this;");
out.println("}");
out.println("");
}
if (isHashable()) {
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println("int " + getClassName() + "::getHashCode() const {");
out.println(" return decaf::util::HashCode<std::string>()(this->toString());");
out.println("}");
out.println("");
}
if( getBaseClassName().equals( "BaseCommand" ) ) {
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println("decaf::lang::Pointer<commands::Command> "+getClassName()+"::visit(activemq::state::CommandVisitor* visitor) {");
out.println(" return visitor->process"+getClassName()+"(this);");
out.println("}");
}
generateAdditionalMethods(out);
}