diff --git a/quickfixj-from-fix-orchestra-repository/quickfixj-from-fix-orchestra-generator/src/main/java/org/quickfixj/orchestra/CodeGeneratorJ.java b/quickfixj-from-fix-orchestra-repository/quickfixj-from-fix-orchestra-generator/src/main/java/org/quickfixj/orchestra/CodeGeneratorJ.java index 2f58473..1cc03d4 100644 --- a/quickfixj-from-fix-orchestra-repository/quickfixj-from-fix-orchestra-generator/src/main/java/org/quickfixj/orchestra/CodeGeneratorJ.java +++ b/quickfixj-from-fix-orchestra-repository/quickfixj-from-fix-orchestra-generator/src/main/java/org/quickfixj/orchestra/CodeGeneratorJ.java @@ -568,6 +568,7 @@ private static void generateMessageBaseClass(File outputDir, String version, Str writeSerializationVersion(writer, SERIALIZATION_VERSION); writeMessageNoArgBaseConstructor(writer, "Message"); writeProtectedMessageBaseConstructor(writer, "Message", getBeginString(version)); + writeHeaderMethods(writer); writeMessageDerivedHeaderClass(writer); writeEndClassDeclaration(writer); @@ -1096,6 +1097,27 @@ private static Writer writeMessageCreateMethod(Writer writer, List return writer; } + private static void writeHeaderMethods(FileWriter writer) throws IOException { + writeHeaderFactoryMethod(writer); + writeHeaderGetter(writer); + } + + private static void writeHeaderFactoryMethod(FileWriter writer) throws IOException { + writer.write(String.format("%n")); + writer.write(String.format("%s@Override%n", CodeGeneratorUtil.indent(1))); + writer.write(String.format("%sprotected Header newHeader() {%n", CodeGeneratorUtil.indent(1))); + writer.write(String.format("%sreturn new Header(this);%n", CodeGeneratorUtil.indent(2))); + writer.write(String.format("%s}%n", CodeGeneratorUtil.indent(1))); + } + + private static void writeHeaderGetter(FileWriter writer) throws IOException { + writer.write(String.format("%n")); + writer.write(String.format("%s@Override%n", CodeGeneratorUtil.indent(1))); + writer.write(String.format("%spublic Header getHeader() {%n", CodeGeneratorUtil.indent(1))); + writer.write(String.format("%sreturn (Message.Header)header;%n", CodeGeneratorUtil.indent(2))); + writer.write(String.format("%s}%n", CodeGeneratorUtil.indent(1))); + } + private static Writer writeMessageDerivedHeaderClass(Writer writer) throws IOException { writeStaticClassDeclaration(writer, "Header", "quickfix.Message.Header"); writeSerializationVersion(writer, SERIALIZATION_VERSION);