@@ -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