@@ -572,6 +572,15 @@ private static CharSequence generateGroupDecoderProperty(final String groupName,
572572 formatPropertyName (groupName ),
573573 token .id ()));
574574
575+  sb .append (String .format (
576+  "\n "  +
577+  indent  + " public static int %sSinceVersion()\n "  +
578+  indent  + " {\n "  +
579+  indent  + " return %d;\n "  +
580+  indent  + " }\n " ,
581+  formatPropertyName (groupName ),
582+  token .version ()));
583+ 
575584 sb .append (String .format (
576585 "\n "  +
577586 indent  + " public %1$s %2$s()\n "  +
@@ -633,6 +642,8 @@ private CharSequence generateDecoderVarData(final List<Token> tokens, final Stri
633642 }
634643
635644 generateFieldIdMethod (sb , token , indent );
645+  generateFieldSinceVersionMethod (sb , token , indent );
646+ 
636647 final  String  characterEncoding  = tokens .get (i  + 3 ).encoding ().characterEncoding ();
637648 generateCharacterEncodingMethod (sb , token .name (), characterEncoding , indent );
638649 generateFieldMetaAttributeMethod (sb , token , indent );
@@ -1946,6 +1957,7 @@ private CharSequence generateDecoderFields(final List<Token> tokens, final Strin
19461957 final  String  typeName  = decoderName (formatClassName (typeToken .name ()));
19471958
19481959 generateFieldIdMethod (sb , fieldToken , indent );
1960+  generateFieldSinceVersionMethod (sb , fieldToken , indent );
19491961 generateFieldMetaAttributeMethod (sb , fieldToken , indent );
19501962
19511963 switch  (typeToken .signal ())
@@ -2001,6 +2013,18 @@ private static void generateFieldIdMethod(final StringBuilder sb, final Token to
20012013 token .id ()));
20022014 }
20032015
2016+  private  static  void  generateFieldSinceVersionMethod (final  StringBuilder  sb , final  Token  token , final  String  indent )
2017+  {
2018+  sb .append (String .format (
2019+  "\n "  +
2020+  indent  + " public static int %sSinceVersion()\n "  +
2021+  indent  + " {\n "  +
2022+  indent  + " return %d;\n "  +
2023+  indent  + " }\n " ,
2024+  formatPropertyName (token .name ()),
2025+  token .version ()));
2026+  }
2027+ 
20042028 private  static  void  generateFieldMetaAttributeMethod (final  StringBuilder  sb , final  Token  token , final  String  indent )
20052029 {
20062030 final  Encoding  encoding  = token .encoding ();
0 commit comments