Skip to content

Commit f5686cc

Browse files
committed
Improve processSymbol method to reduce the usage of if statement. Correct smithy files' formatting.
1 parent d8d144e commit f5686cc

File tree

7 files changed

+18
-25
lines changed

7 files changed

+18
-25
lines changed

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/maps/nested-map-trait.smithy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ namespace test.smithy.traitcodegen
44

55
use test.smithy.traitcodegen.maps#NestedMapTrait
66

7-
@NestedMapTrait(a:{b:{c:"d"}})
7+
@NestedMapTrait(a: {b: {c: "d"}})
88
structure myStruct {}

smithy-trait-codegen/src/it/resources/software/amazon/smithy/traitcodegen/test/structures/struct-with-listofmap-trait.smithy

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ use test.smithy.traitcodegen.structures#StructWithListOfMapTrait
77
@StructWithListOfMapTrait({
88
name: "a"
99
items: [{
10-
b:"c"
10+
b: "c"
1111
}]
1212
})
1313
structure myStruct {
14-
1514
}

smithy-trait-codegen/src/main/java/software/amazon/smithy/traitcodegen/generators/ToNodeGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ public Void listShape(ListShape shape) {
252252

253253
@Override
254254
public Void mapShape(MapShape shape) {
255-
String entryName = "entry" + nestedLevel;
255+
String entryName = nestedLevel > 0 ? "entry" + nestedLevel : "entry";
256256
writer.openBlock("$L.entrySet().stream()",
257257
"",
258258
varName,

smithy-trait-codegen/src/main/java/software/amazon/smithy/traitcodegen/writer/TraitCodegenWriter.java

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import java.util.HashMap;
88
import java.util.HashSet;
9-
import java.util.Iterator;
109
import java.util.Map;
1110
import java.util.Optional;
1211
import java.util.Scanner;
@@ -21,6 +20,7 @@
2120
import software.amazon.smithy.traitcodegen.TraitCodegenSettings;
2221
import software.amazon.smithy.traitcodegen.TraitCodegenUtils;
2322
import software.amazon.smithy.utils.ListUtils;
23+
import software.amazon.smithy.utils.SetUtils;
2424
import software.amazon.smithy.utils.StringUtils;
2525

2626
/**
@@ -46,6 +46,7 @@
4646
public class TraitCodegenWriter extends SymbolWriter<TraitCodegenWriter, TraitCodegenImportContainer> {
4747
private static final int MAX_LINE_LENGTH = 120;
4848
private static final Pattern PATTERN = Pattern.compile("<([a-z]+)*>.*?</\\1>", Pattern.DOTALL);
49+
private static final Set<String> PARAMETERIZED_TYPE_NAMES = SetUtils.of("List", "Map", "Set", "Collection");
4950
private final String namespace;
5051
private final String fileName;
5152
private final TraitCodegenSettings settings;
@@ -233,28 +234,21 @@ private String getPlaceholder(Symbol symbol) {
233234
return format("$${$L:L}", normalizedSymbol.getFullName());
234235
}
235236

236-
private boolean isGenericType(Symbol symbol) {
237-
String name = symbol.getName();
238-
return name.equals("List") || name.equals("Map")
239-
|| name.equals("Set")
240-
|| name.equals("Collection");
237+
private boolean isParametrized(Symbol symbol) {
238+
return PARAMETERIZED_TYPE_NAMES.contains(symbol.getName());
241239
}
242240

243241
// Recursively process the symbols using Java Type.
244242
private void processSymbol(Symbol symbol, StringBuilder builder) {
245243
builder.append(getPlaceholder(symbol));
246-
if (isGenericType(symbol)) {
244+
if (isParametrized(symbol)) {
247245
builder.append("<");
248-
}
249-
Iterator<SymbolReference> iterator = symbol.getReferences().iterator();
250-
while (iterator.hasNext()) {
251-
Symbol referenceSymbol = iterator.next().getSymbol();
252-
processSymbol(referenceSymbol, builder);
253-
if (iterator.hasNext()) {
246+
for (SymbolReference reference : symbol.getReferences()) {
247+
Symbol referenceSymbol = reference.getSymbol();
248+
processSymbol(referenceSymbol, builder);
254249
builder.append(", ");
255250
}
256-
}
257-
if (isGenericType(symbol)) {
251+
builder.setLength(builder.length() - 2); // Trim the final comma.
258252
builder.append(">");
259253
}
260254
}

smithy-trait-codegen/src/test/resources/META-INF/smithy/lists/nested-list-trait.smithy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ list ItemsList {
1313

1414
list ItemsListEntry {
1515
member: String
16-
}
16+
}

smithy-trait-codegen/src/test/resources/META-INF/smithy/maps/nested-map-trait.smithy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace test.smithy.traitcodegen.maps
55
@trait
66
map NestedMapTrait {
77
key: String
8-
value:ItemsMap
8+
value: ItemsMap
99
}
1010

1111
map ItemsMap {
@@ -16,4 +16,4 @@ map ItemsMap {
1616
map ItemsMapEntry {
1717
key: String
1818
value: String
19-
}
19+
}

smithy-trait-codegen/src/test/resources/META-INF/smithy/structures/struct-with-listofmap-trait.smithy

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace test.smithy.traitcodegen.structures
44

55
@trait
66
structure StructWithListOfMapTrait {
7-
name:String
7+
name: String
88
items: ItemsList
99
}
1010

@@ -13,6 +13,6 @@ list ItemsList {
1313
}
1414

1515
map ItemsListEntry {
16-
key:String,
16+
key: String,
1717
value: String
18-
}
18+
}

0 commit comments

Comments
 (0)