protected void generateLooseMarshalBody()

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


    protected void generateLooseMarshalBody(PrintWriter out) {
        for (JProperty property : getProperties()) {
            JAnnotation annotation = property.getAnnotation("openwire:property");
            JAnnotationValue size = annotation.getValue("size");
            JClass propertyType = property.getType();
            String type = propertyType.getSimpleName();
            String getter = "info." + property.getSimpleName();

            if (type.equals("boolean")) {
                out.println("            dataOut.Write(" + getter + ");");
            } else if (type.equals("byte")) {
                out.println("            dataOut.Write(" + getter + ");");
            } else if (type.equals("char")) {
                out.println("            dataOut.Write(" + getter + ");");
            } else if (type.equals("short")) {
                out.println("            dataOut.Write(" + getter + ");");
            } else if (type.equals("int")) {
                out.println("            dataOut.Write(" + getter + ");");
            } else if (type.equals("long")) {
                out.println("            LooseMarshalLong(wireFormat, " + getter + ", dataOut);");
            } else if (type.equals("String")) {
                out.println("            LooseMarshalString(" + getter + ", dataOut);");
            } else if (type.equals("byte[]") || type.equals("ByteSequence")) {
                if (size != null) {
                    out.println("            dataOut.Write(" + getter + ", 0, " + size.asInt() + ");");
                } else {
                    out.println("            dataOut.Write(" + getter + "!=null);");
                    out.println("            if(" + getter + "!=null) {");
                    out.println("               dataOut.Write(" + getter + ".Length);");
                    out.println("               dataOut.Write(" + getter + ");");
                    out.println("            }");
                }
            } else if (propertyType.isArrayType()) {
                if (size != null) {
                    out.println("            LooseMarshalObjectArrayConstSize(wireFormat, " + getter + ", dataOut, " + size.asInt() + ");");
                } else {
                    out.println("            LooseMarshalObjectArray(wireFormat, " + getter + ", dataOut);");
                }
            } else if (isThrowable(propertyType)) {
                out.println("            LooseMarshalBrokerError(wireFormat, " + getter + ", dataOut);");
            } else {
                if (isCachedProperty(property)) {
                    out.println("            LooseMarshalCachedObject(wireFormat, (DataStructure)" + getter + ", dataOut);");
                } else {
                    out.println("            LooseMarshalNestedObject(wireFormat, (DataStructure)" + getter + ", dataOut);");
                }
            }
        }
    }