protected void generateFile()

in activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/CSharpMarshallingGenerator.java [361:531]


    protected void generateFile(PrintWriter out) throws Exception {
        generateLicence(out);
        out.println("");
        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("using System;");
        out.println("using System.Collections;");
        out.println("using System.IO;");
        out.println("");
        out.println("using ActiveMQ.Commands;");
        out.println("using ActiveMQ.OpenWire;");
        out.println("using ActiveMQ.OpenWire.V" + getOpenwireVersion() + ";");
        out.println("");
        out.println("namespace ActiveMQ.OpenWire.V" + getOpenwireVersion() + "");
        out.println("{");
        out.println("  /// <summary>");
        out.println("  ///  Marshalling code for Open Wire Format for " + jclass.getSimpleName() + "");
        out.println("  /// </summary>");
        out.println("  " + getAbstractClassText() + "class " + getClassName() + " : " + getBaseClass() + "");
        out.println("  {");

        if (!isAbstractClass()) {
            out.println("");
            out.println("");
            out.println("    public override DataStructure CreateObject() ");
            out.println("    {");
            out.println("        return new " + jclass.getSimpleName() + "();");
            out.println("    }");
            out.println("");
            out.println("    public override byte GetDataStructureType() ");
            out.println("    {");
            out.println("        return " + jclass.getSimpleName() + ".ID_" + jclass.getSimpleName() + ";");
            out.println("    }");
        }

        /*
         * Generate the tight encoding marshallers
         */
        out.println("");
        out.println("    // ");
        out.println("    // Un-marshal an object instance from the data input stream");
        out.println("    // ");
        out.println("    public override void TightUnmarshal(OpenWireFormat wireFormat, Object o, BinaryReader dataIn, BooleanStream bs) ");
        out.println("    {");
        out.println("        base.TightUnmarshal(wireFormat, o, dataIn, bs);");

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

        if (isMarshallerAware()) {
            out.println("");
            out.println("        info.BeforeUnmarshall(wireFormat);");
            out.println("");
        }

        generateTightUnmarshalBody(out);

        if (isMarshallerAware()) {
            out.println("");
            out.println("        info.AfterUnmarshall(wireFormat);");
        }

        out.println("");
        out.println("    }");
        out.println("");
        out.println("    //");
        out.println("    // Write the booleans that this object uses to a BooleanStream");
        out.println("    //");
        out.println("    public override int TightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) {");
        out.println("        " + jclass.getSimpleName() + " info = (" + jclass.getSimpleName() + ")o;");

        if (isMarshallerAware()) {
            out.println("");
            out.println("        info.BeforeMarshall(wireFormat);");
        }

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

        int baseSize = generateTightMarshal1Body(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("    public override void TightMarshal2(OpenWireFormat wireFormat, Object o, BinaryWriter dataOut, BooleanStream bs) {");
        out.println("        base.TightMarshal2(wireFormat, o, dataOut, bs);");

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

        generateTightMarshal2Body(out);

        if (isMarshallerAware()) {
            out.println("");
            out.println("        info.AfterMarshall(wireFormat);");
        }

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

        out.println("");
        out.println("    // ");
        out.println("    // Un-marshal an object instance from the data input stream");
        out.println("    // ");
        out.println("    public override void LooseUnmarshal(OpenWireFormat wireFormat, Object o, BinaryReader dataIn) ");
        out.println("    {");
        out.println("        base.LooseUnmarshal(wireFormat, o, dataIn);");

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

        if (isMarshallerAware()) {
            out.println("");
            out.println("        info.BeforeUnmarshall(wireFormat);");
            out.println("");
        }

        generateLooseUnmarshalBody(out);

        if (isMarshallerAware()) {
            out.println("");
            out.println("        info.AfterUnmarshall(wireFormat);");
        }

        out.println("");
        out.println("    }");
        out.println("");
        out.println("    // ");
        out.println("    // Write a object instance to data output stream");
        out.println("    //");
        out.println("    public override void LooseMarshal(OpenWireFormat wireFormat, Object o, BinaryWriter dataOut) {");

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

        if (isMarshallerAware()) {
            out.println("");
            out.println("        info.BeforeMarshall(wireFormat);");
        }

        out.println("");
        out.println("        base.LooseMarshal(wireFormat, o, dataOut);");

        generateLooseMarshalBody(out);

        if (isMarshallerAware()) {
            out.println("");
            out.println("        info.AfterMarshall(wireFormat);");
        }
        out.println("");
        out.println("    }");
        out.println("  }");
        out.println("}");

    }