Skip to content

Commit 60373c0

Browse files
committed
[Java] Generate javadoc for enum values as part of Issues aeron-io#22 and aeron-io#289.
1 parent a5a874e commit 60373c0

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ private void generateGroupDecoderClassDeclaration(
514514
indent + " private int index;\n" +
515515
indent + " private int offset;\n" +
516516
indent + " private int blockLength;\n\n",
517-
generateClassJavadoc(indent, groupToken),
517+
generateTypeJavadoc(indent, groupToken),
518518
formatClassName(groupName),
519519
dimensionHeaderSize,
520520
decoderName(dimensionsClassName),
@@ -543,7 +543,7 @@ private void generateGroupEncoderClassDeclaration(
543543
indent + " private int count;\n" +
544544
indent + " private int index;\n" +
545545
indent + " private int offset;\n\n",
546-
generateClassJavadoc(indent, groupToken),
546+
generateTypeJavadoc(indent, groupToken),
547547
formatClassName(encoderName(groupName)),
548548
dimensionHeaderSize,
549549
dimensionsClassName,
@@ -1255,7 +1255,8 @@ private CharSequence generateEnumValues(final List<Token> tokens)
12551255
{
12561256
final Encoding encoding = token.encoding();
12571257
final CharSequence constVal = generateLiteral(encoding.primitiveType(), encoding.constValue().toString());
1258-
sb.append(INDENT).append(token.name()).append('(').append(constVal).append("),\n");
1258+
sb.append(generateTypeJavadoc(INDENT, token));
1259+
sb.append(INDENT).append(token.name()).append('(').append(constVal).append("),\n\n");
12591260
}
12601261

12611262
final Token token = tokens.get(0);
@@ -1265,9 +1266,15 @@ private CharSequence generateEnumValues(final List<Token> tokens)
12651266

12661267
if (shouldDecodeUnknownEnumValues)
12671268
{
1268-
sb.append(INDENT).append("SBE_UNKNOWN").append('(').append(nullVal).append("),\n");
1269+
sb.append(INDENT).append("/**\n");
1270+
sb.append(INDENT).append(" * To be used to represent a not known value from a later version.\n");
1271+
sb.append(INDENT).append(" */\n");
1272+
sb.append(INDENT).append("SBE_UNKNOWN").append('(').append(nullVal).append("),\n\n");
12691273
}
12701274

1275+
sb.append(INDENT).append("/**\n");
1276+
sb.append(INDENT).append(" * To be used to represent not present or null.\n");
1277+
sb.append(INDENT).append(" */\n");
12711278
sb.append(INDENT).append("NULL_VAL").append('(').append(nullVal).append(");\n\n");
12721279

12731280
return sb;
@@ -1445,7 +1452,7 @@ private static CharSequence generateDeclaration(
14451452
"@SuppressWarnings(\"all\")\n" +
14461453
"public class %s%s\n" +
14471454
"{\n",
1448-
generateClassJavadoc(BASE_INDENT, typeToken),
1455+
generateTypeJavadoc(BASE_INDENT, typeToken),
14491456
className,
14501457
implementsString);
14511458
}
@@ -1472,7 +1479,7 @@ private void generateMetaAttributeEnum() throws IOException
14721479
private static CharSequence generateEnumDeclaration(final String name, final Token typeToken)
14731480
{
14741481
return
1475-
generateClassJavadoc(BASE_INDENT, typeToken) +
1482+
generateTypeJavadoc(BASE_INDENT, typeToken) +
14761483
"@javax.annotation.Generated(value = { \"uk.co.real_logic.sbe.generation.java.JavaGenerator\" })\n" +
14771484
"public enum " + name + "\n{\n";
14781485
}

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaUtil.java

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -252,26 +252,23 @@ public static String generateLiteral(final PrimitiveType type, final String valu
252252
}
253253

254254
/**
255-
* Generate the Javadoc comment header for a class.
255+
* Generate the Javadoc comment header for a type.
256256
*
257-
* @param indent level for the comment.
258-
* @param classToken for the type.
257+
* @param indent level for the comment.
258+
* @param typeToken for the type.
259259
* @return a string representation of the Javadoc comment.
260260
*/
261-
public static String generateClassJavadoc(final String indent, final Token classToken)
261+
public static String generateTypeJavadoc(final String indent, final Token typeToken)
262262
{
263-
final String description = classToken.description();
263+
final String description = typeToken.description();
264264
if (null == description || description.length() == 0)
265265
{
266266
return "";
267267
}
268268

269-
final StringBuilder sb = new StringBuilder();
270-
271-
sb.append(indent).append("/**\n");
272-
sb.append(indent).append(" * ").append(description).append('\n');
273-
sb.append(indent).append(" */\n");
274-
275-
return sb.toString();
269+
return
270+
indent + "/**\n" +
271+
indent + " * " + description + '\n' +
272+
indent + " */\n";
276273
}
277274
}

0 commit comments

Comments
 (0)