in src/main/java/org/apache/activemq/nms/openwire/tool/marshalers/AmqCSharpMarshallersGenerator.java [581:628]
protected void generateTightMarshal2Body(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(" bs.ReadBoolean();");
} 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(" TightMarshalLong2(wireFormat, " + getter + ", dataOut, bs);");
} else if (type.equals("String")) {
out.println(" TightMarshalString2(" + getter + ", dataOut, bs);");
} else if (type.equals("byte[]") || type.equals("ByteSequence")) {
if (size != null) {
out.println(" dataOut.Write(" + getter + ", 0, " + size.asInt() + ");");
} else {
out.println(" if(bs.ReadBoolean()) {");
out.println(" dataOut.Write(" + getter + ".Length);");
out.println(" dataOut.Write(" + getter + ");");
out.println(" }");
}
} else if (propertyType.isArrayType()) {
if (size != null) {
out.println(" TightMarshalObjectArrayConstSize2(wireFormat, " + getter + ", dataOut, bs, " + size.asInt() + ");");
} else {
out.println(" TightMarshalObjectArray2(wireFormat, " + getter + ", dataOut, bs);");
}
} else if (isThrowable(propertyType)) {
out.println(" TightMarshalBrokerError2(wireFormat, " + getter + ", dataOut, bs);");
} else {
if (isCachedProperty(property)) {
out.println(" TightMarshalCachedObject2(wireFormat, (DataStructure)" + getter + ", dataOut, bs);");
} else {
out.println(" TightMarshalNestedObject2(wireFormat, (DataStructure)" + getter + ", dataOut, bs);");
}
}
}
}