public void generate()

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