protected void generateFile()

in src/main/java/org/apache/activemq/nms/openwire/tool/marshalers/AmqCSharpMarshallersGenerator.java [137:315]


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

        out.println("");
        out.println("/*");
        out.println(" *");
        out.println(" *  Marshaler code for OpenWire format for "+super.getClassName(jclass) );
        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");
        out.println(" *         in the nms-activemq-openwire-generator module");
        out.println(" *");
        out.println(" */");
        out.println("");
        out.println("using System;");
        out.println("using System.IO;");
        out.println("");
        out.println("using Apache.NMS.ActiveMQ.Commands;");
        out.println("");
        out.println("namespace Apache.NMS.ActiveMQ.OpenWire.V"+getOpenwireVersion());
        out.println("{");
        out.println("    /// <summary>");
        out.println("    ///  Marshalling code for Open Wire Format for "+super.getClassName(jclass));
        out.println("    /// </summary>");
        if( isAbstractClass() ) {
            out.println("    abstract class "+getClassName()+" : "+getBaseClass());
        } else {
            out.println("    class "+getClassName()+" : "+getBaseClass());
        }
        out.println("    {");

        if (!isAbstractClass()) {
            out.println("        /// <summery>");
            out.println("        ///  Creates an instance of the Object that this marshaller handles.");
            out.println("        /// </summery>");
            out.println("        public override DataStructure CreateObject() ");
            out.println("        {");
            out.println("            return new " + jclass.getSimpleName() + "();");
            out.println("        }");
            out.println("");
            out.println("        /// <summery>");
            out.println("        ///  Returns the type code for the Object that this Marshaller handles..");
            out.println("        /// </summery>");
            out.println("        public override byte GetDataStructureType() ");
            out.println("        {");
            out.println("            return " + jclass.getSimpleName() + ".ID_" + jclass.getSimpleName().toUpperCase() + ";");
            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 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("        // 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("        {");

        if( checkNeedsInfoPointerTM1() ) {
            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, o, 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("        {");
        out.println("            base.TightMarshal2(wireFormat, o, dataOut, bs);");

        if( checkNeedsInfoPointerTM2() ) {
            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("        // 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("        // Write a object instance to data output stream");
        out.println("        //");
        out.println("        public override void LooseMarshal(OpenWireFormat wireFormat, Object o, BinaryWriter dataOut)");
        out.println("        {");

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