@@ -466,7 +466,7 @@ private CharSequence generateCompositePropertyElements(final List<Token> tokens,
466466 break ;
467467
468468 case  BEGIN_ENUM :
469-  sb .append (generateEnumProperty (propertyName , token , indent ));
469+  sb .append (generateEnumProperty (propertyName , token , null ,  indent ));
470470 break ;
471471
472472 case  BEGIN_SET :
@@ -1039,7 +1039,7 @@ private CharSequence generateFields(final List<Token> tokens, final String inden
10391039 break ;
10401040
10411041 case  BEGIN_ENUM :
1042-  sb .append (generateEnumProperty (propertyName , encodingToken , indent ));
1042+  sb .append (generateEnumProperty (propertyName , encodingToken , signalToken ,  indent ));
10431043 break ;
10441044
10451045 case  BEGIN_SET :
@@ -1109,7 +1109,11 @@ private CharSequence generateEnumFieldNotPresentCondition(
11091109 enumName );
11101110 }
11111111
1112-  private  CharSequence  generateEnumProperty (final  String  propertyName , final  Token  token , final  String  indent )
1112+  private  CharSequence  generateEnumProperty (
1113+  final  String  propertyName ,
1114+  final  Token  token ,
1115+  final  Token  signalToken ,
1116+  final  String  indent )
11131117 {
11141118 final  String  enumName  = formatClassName (token .applicableTypeName ());
11151119 final  String  typePrefix  = toUpperFirstChar (token .encoding ().primitiveType ().primitiveName ());
@@ -1118,27 +1122,46 @@ private CharSequence generateEnumProperty(final String propertyName, final Token
11181122 final  ByteOrder  byteOrder  = token .encoding ().byteOrder ();
11191123 final  String  byteOrderStr  = generateByteOrder (byteOrder , token .encoding ().primitiveType ().size ());
11201124
1121-  return  String .format ("\n "  +
1122-  indent  + INDENT  + "public %1$s %2$s\n "  +
1123-  indent  + INDENT  + "{\n "  +
1124-  indent  + INDENT  + INDENT  + "get\n "  +
1125-  indent  + INDENT  + INDENT  + "{\n "  +
1126-  "%3$s"  +
1127-  indent  + INDENT  + INDENT  + INDENT  + "return (%4$s)_buffer.%5$sGet%7$s(_offset + %6$d);\n "  +
1128-  indent  + INDENT  + INDENT  + "}\n "  +
1129-  indent  + INDENT  + INDENT  + "set\n "  +
1130-  indent  + INDENT  + INDENT  + "{\n "  +
1131-  indent  + INDENT  + INDENT  + INDENT  + "_buffer.%5$sPut%7$s(_offset + %6$d, (%8$s)value);\n "  +
1132-  indent  + INDENT  + INDENT  + "}\n "  +
1133-  indent  + INDENT  + "}\n \n " ,
1134-  enumName ,
1135-  toUpperFirstChar (propertyName ),
1136-  generateEnumFieldNotPresentCondition (token .version (), enumName , indent ),
1137-  enumName ,
1138-  typePrefix ,
1139-  offset ,
1140-  byteOrderStr ,
1141-  enumUnderlyingType );
1125+  if  (signalToken  != null  && signalToken .isConstantEncoding ())
1126+  {
1127+  final  String  constValue  = signalToken .encoding ().constValue ().toString ();
1128+ 
1129+  return  String .format ("\n "  +
1130+  indent  + INDENT  + "public %1$s %2$s\n "  +
1131+  indent  + INDENT  + "{\n "  +
1132+  indent  + INDENT  + INDENT  + "get\n "  +
1133+  indent  + INDENT  + INDENT  + "{\n "  +
1134+  indent  + INDENT  + INDENT  + INDENT  + "return %3$s;\n "  +
1135+  indent  + INDENT  + INDENT  + "}\n "  +
1136+  indent  + INDENT  + "}\n \n " ,
1137+  enumName ,
1138+  toUpperFirstChar (propertyName ),
1139+  constValue );
1140+  }
1141+  else 
1142+  {
1143+  return  String .format ("\n "  +
1144+  indent  + INDENT  + "public %1$s %2$s\n "  +
1145+  indent  + INDENT  + "{\n "  +
1146+  indent  + INDENT  + INDENT  + "get\n "  +
1147+  indent  + INDENT  + INDENT  + "{\n "  +
1148+  "%3$s"  +
1149+  indent  + INDENT  + INDENT  + INDENT  + "return (%4$s)_buffer.%5$sGet%7$s(_offset + %6$d);\n "  +
1150+  indent  + INDENT  + INDENT  + "}\n "  +
1151+  indent  + INDENT  + INDENT  + "set\n "  +
1152+  indent  + INDENT  + INDENT  + "{\n "  +
1153+  indent  + INDENT  + INDENT  + INDENT  + "_buffer.%5$sPut%7$s(_offset + %6$d, (%8$s)value);\n "  +
1154+  indent  + INDENT  + INDENT  + "}\n "  +
1155+  indent  + INDENT  + "}\n \n " ,
1156+  enumName ,
1157+  toUpperFirstChar (propertyName ),
1158+  generateEnumFieldNotPresentCondition (token .version (), enumName , indent ),
1159+  enumName ,
1160+  typePrefix ,
1161+  offset ,
1162+  byteOrderStr ,
1163+  enumUnderlyingType );
1164+  }
11421165 }
11431166
11441167 private  String  generateBitSetProperty (final  String  propertyName , final  Token  token , final  String  indent )
0 commit comments