protected void generateFile()

in activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/CppMarshallingClassesGenerator.java [206:318]


    protected void generateFile(PrintWriter out) throws Exception {
        generateLicence(out);

        out.println("#include \"marshal/" + className + ".hpp\"");
        out.println("");
        out.println("using namespace apache::activemq::client::marshal;");
        out.println("");
        out.println("/*");
        out.println(" *  Marshalling code for Open Wire Format for " + jclass.getSimpleName() + "");
        out.println(" *");
        out.println(" * NOTE!: This file is autogenerated - do not modify!");
        out.println(" *        if you need to make a change, please see the Groovy scripts in the");
        out.println(" *        activemq-core module");
        out.println(" */");
        out.println("");
        out.println("" + className + "::" + className + "()");
        out.println("{");
        out.println("    // no-op");
        out.println("}");
        out.println("");
        out.println("" + className + "::~" + className + "()");
        out.println("{");
        out.println("    // no-op");
        out.println("}");
        out.println("");

        if (!isAbstractClass()) {
            out.println("");
            out.println("");
            out.println("IDataStructure* " + className + "::createObject() ");
            out.println("{");
            out.println("    return new " + jclass.getSimpleName() + "();");
            out.println("}");
            out.println("");
            out.println("char " + className + "::getDataStructureType() ");
            out.println("{");
            out.println("    return " + jclass.getSimpleName() + ".ID_" + jclass.getSimpleName() + ";");
            out.println("}");
        }

        out.println("");
        out.println("    /* ");
        out.println("     * Un-marshal an object instance from the data input stream");
        out.println("     */ ");
        out.println("void " + className + "::unmarshal(ProtocolFormat& wireFormat, Object o, BinaryReader& dataIn, BooleanStream& bs) ");
        out.println("{");
        out.println("    base.unmarshal(wireFormat, o, dataIn, bs);");

        List properties = getProperties();
        boolean marshallerAware = isMarshallerAware();
        if (!properties.isEmpty() || marshallerAware) {
            out.println("");
            out.println("    " + jclass.getSimpleName() + "& info = (" + jclass.getSimpleName() + "&) o;");
        }

        if (marshallerAware) {
            out.println("");
            out.println("    info.beforeUnmarshall(wireFormat);");
            out.println("        ");
        }

        generateTightUnmarshalBody(out);

        if (marshallerAware) {
            out.println("");
            out.println("    info.afterUnmarshall(wireFormat);");
        }

        out.println("");
        out.println("}");
        out.println("");
        out.println("");
        out.println("/*");
        out.println(" * Write the booleans that this object uses to a BooleanStream");
        out.println(" */");
        out.println("int " + className + "::marshal1(ProtocolFormat& wireFormat, Object& o, BooleanStream& bs) {");
        out.println("    " + jclass.getSimpleName() + "& info = (" + jclass.getSimpleName() + "&) o;");

        if (marshallerAware) {
            out.println("");
            out.println("    info.beforeMarshall(wireFormat);");
        }

        out.println("");
        out.println("    int rc = base.marshal1(wireFormat, info, bs);");

        int baseSize = generateMarshal1Body(out);

        out.println("");
        out.println("    return rc + " + baseSize + ";");
        out.println("}");
        out.println("");
        out.println("/* ");
        out.println(" * Write a object instance to data output stream");
        out.println(" */");
        out.println("void " + className + "::marshal2(ProtocolFormat& wireFormat, Object& o, BinaryWriter& dataOut, BooleanStream& bs) {");
        out.println("    base.marshal2(wireFormat, o, dataOut, bs);");

        if (!properties.isEmpty() || marshallerAware) {
            out.println("");
            out.println("    " + jclass.getSimpleName() + "& info = (" + jclass.getSimpleName() + "&) o;");
        }

        generateMarshal2Body(out);

        if (marshallerAware) {
            out.println("");
            out.println("    info.afterMarshall(wireFormat);");
        }

        out.println("");
        out.println("}");
    }