@@ -228,10 +228,9 @@ private void generateGroupClassHeader(final StringBuilder sb,
228228 indent  + " blockLength = dimensions.blockLength();\n "  +
229229 indent  + " this.actingVersion = actingVersion;\n "  +
230230 indent  + " index = -1;\n "  +
231-  indent  + " parentMessage.limit(parentMessage.limit() + %d );\n "  +
231+  indent  + " parentMessage.limit(parentMessage.limit() + headerSize() );\n "  +
232232 indent  + " }\n \n " ,
233-  parentMessageClassName ,
234-  dimensionHeaderSize 
233+  parentMessageClassName 
235234 ));
236235
237236 final  Integer  blockLength  = Integer .valueOf (tokens .get (index ).size ());
@@ -249,12 +248,19 @@ private void generateGroupClassHeader(final StringBuilder sb,
249248 indent  + " index = -1;\n "  +
250249 indent  + " this.count = count;\n "  +
251250 indent  + " blockLength = %4$d;\n "  +
252-  indent  + " parentMessage.limit(parentMessage.limit() + %5$d );\n "  +
251+  indent  + " parentMessage.limit(parentMessage.limit() + headerSize() );\n "  +
253252 indent  + " }\n \n " ,
254253 parentMessageClassName ,
255254 javaTypeForNumInGroup ,
256255 javaTypeForBlockLength ,
257-  blockLength ,
256+  blockLength 
257+  ));
258+ 
259+  sb .append (String .format (
260+  indent  + " public static int headerSize()\n "  +
261+  indent  + " {\n "  +
262+  indent  + " return %d;\n "  +
263+  indent  + " }\n \n " ,
258264 dimensionHeaderSize 
259265 ));
260266
@@ -285,7 +291,7 @@ private void generateGroupClassHeader(final StringBuilder sb,
285291 indent  + " }\n \n "  +
286292 indent  + " public boolean hasNext()\n "  +
287293 indent  + " {\n "  +
288-  indent  + " return index + 1 < count;\n "  +
294+  indent  + " return ( index + 1)  < count;\n "  +
289295 indent  + " }\n \n " ,
290296 formatClassName (groupName )
291297 ));
@@ -380,6 +386,16 @@ private CharSequence generateVarData(final List<Token> tokens)
380386 final  ByteOrder  byteOrder  = lengthEncoding .byteOrder ();
381387 final  String  byteOrderStr  = lengthEncoding .primitiveType ().size () == 1  ? ""  : ", java.nio.ByteOrder."  + byteOrder ;
382388
389+  sb .append (String .format (
390+  "\n "  +
391+  " public static int %sHeaderSize()\n "  +
392+  " {\n "  +
393+  " return %d;\n "  +
394+  " }\n " ,
395+  toLowerFirstChar (propertyName ),
396+  sizeOfLengthField 
397+  ));
398+ 
383399 sb .append (String .format (
384400 "\n "  +
385401 " public int get%s(final byte[] dst, final int dstOffset, final int length)\n "  +
0 commit comments