Skip to content

Commit dd7521f

Browse files
committed
[Java] Apply property formatting to primitive types in composites. Issue #582.
1 parent 3126b9a commit dd7521f

File tree

3 files changed

+23
-11
lines changed

3 files changed

+23
-11
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ public static void forEachField(final List<Token> tokens, final BiConsumer<Token
5656
*/
5757
public static String toUpperFirstChar(final String s)
5858
{
59+
if (Character.isUpperCase(s.charAt(0)))
60+
{
61+
return s;
62+
}
63+
5964
return Character.toUpperCase(s.charAt(0)) + s.substring(1);
6065
}
6166

@@ -67,6 +72,11 @@ public static String toUpperFirstChar(final String s)
6772
*/
6873
public static String toLowerFirstChar(final String s)
6974
{
75+
if (Character.isLowerCase(s.charAt(0)))
76+
{
77+
return s;
78+
}
79+
7080
return Character.toLowerCase(s.charAt(0)) + s.substring(1);
7181
}
7282
}

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

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1561,17 +1561,18 @@ private CharSequence generatePrimitiveDecoder(
15611561
final String indent)
15621562
{
15631563
final StringBuilder sb = new StringBuilder();
1564+
final String formattedPropertyName = formatPropertyName(propertyName);
15641565

1565-
sb.append(generatePrimitiveFieldMetaData(propertyName, encodingToken, indent));
1566+
sb.append(generatePrimitiveFieldMetaData(formattedPropertyName, encodingToken, indent));
15661567

15671568
if (encodingToken.isConstantEncoding())
15681569
{
1569-
sb.append(generateConstPropertyMethods(propertyName, encodingToken, indent));
1570+
sb.append(generateConstPropertyMethods(formattedPropertyName, encodingToken, indent));
15701571
}
15711572
else
15721573
{
15731574
sb.append(generatePrimitivePropertyDecodeMethods(
1574-
inComposite, propertyName, propertyToken, encodingToken, indent));
1575+
inComposite, formattedPropertyName, propertyToken, encodingToken, indent));
15751576
}
15761577

15771578
return sb;
@@ -1581,16 +1582,18 @@ private CharSequence generatePrimitiveEncoder(
15811582
final String containingClassName, final String propertyName, final Token token, final String indent)
15821583
{
15831584
final StringBuilder sb = new StringBuilder();
1585+
final String formattedPropertyName = formatPropertyName(propertyName);
15841586

1585-
sb.append(generatePrimitiveFieldMetaData(propertyName, token, indent));
1587+
sb.append(generatePrimitiveFieldMetaData(formattedPropertyName, token, indent));
15861588

15871589
if (!token.isConstantEncoding())
15881590
{
1589-
sb.append(generatePrimitivePropertyEncodeMethods(containingClassName, propertyName, token, indent));
1591+
sb.append(generatePrimitivePropertyEncodeMethods(
1592+
containingClassName, formattedPropertyName, token, indent));
15901593
}
15911594
else
15921595
{
1593-
sb.append(generateConstPropertyMethods(propertyName, token, indent));
1596+
sb.append(generateConstPropertyMethods(formattedPropertyName, token, indent));
15941597
}
15951598

15961599
return sb;
@@ -2383,8 +2386,8 @@ private CharSequence generateEncoderFields(
23832386

23842387
generateFieldIdMethod(sb, fieldToken, indent);
23852388
generateFieldSinceVersionMethod(sb, fieldToken, indent);
2386-
generateEncodingOffsetMethod(sb, fieldToken.name(), fieldToken.offset(), indent);
2387-
generateEncodingLengthMethod(sb, fieldToken.name(), typeToken.encodedLength(), indent);
2389+
generateEncodingOffsetMethod(sb, propertyName, fieldToken.offset(), indent);
2390+
generateEncodingLengthMethod(sb, propertyName, typeToken.encodedLength(), indent);
23882391
generateFieldMetaAttributeMethod(sb, fieldToken, indent);
23892392

23902393
switch (typeToken.signal())
@@ -2425,8 +2428,8 @@ private CharSequence generateDecoderFields(final List<Token> tokens, final Strin
24252428

24262429
generateFieldIdMethod(sb, fieldToken, indent);
24272430
generateFieldSinceVersionMethod(sb, fieldToken, indent);
2428-
generateEncodingOffsetMethod(sb, fieldToken.name(), fieldToken.offset(), indent);
2429-
generateEncodingLengthMethod(sb, fieldToken.name(), typeToken.encodedLength(), indent);
2431+
generateEncodingOffsetMethod(sb, propertyName, fieldToken.offset(), indent);
2432+
generateEncodingLengthMethod(sb, propertyName, typeToken.encodedLength(), indent);
24302433
generateFieldMetaAttributeMethod(sb, fieldToken, indent);
24312434

24322435
switch (typeToken.signal())

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ public static String formatClassName(final String value)
168168
return Generators.toUpperFirstChar(value);
169169
}
170170

171-
172171
/**
173172
* Shortcut to append a line of generated code
174173
*

0 commit comments

Comments
 (0)