|
30 | 30 | */ |
31 | 31 | @SmithyUnstableApi |
32 | 32 | public final class JavaWriter extends DeferredSymbolWriter<JavaWriter, JavaImportContainer> { |
33 | | - private static final char PLACEHOLDER_FORMAT_CHAR = '£'; |
34 | 33 | private final String packageNamespace; |
35 | 34 | private final JavaCodegenSettings settings; |
36 | 35 | private final String filename; |
@@ -81,28 +80,20 @@ public String toString() { |
81 | 80 | } |
82 | 81 |
|
83 | 82 | putNameContext(); |
84 | | - setExpressionStart(PLACEHOLDER_FORMAT_CHAR); |
85 | 83 | String header = settings.header(); |
86 | 84 | String headerPrefix = (header != null && !header.isEmpty()) ? header + "\n" : ""; |
87 | | - return format( |
88 | | - """ |
89 | | - £Lpackage £L; |
90 | | -
|
91 | | - £L |
92 | | - £L""", |
93 | | - headerPrefix, |
94 | | - packageNamespace, |
95 | | - getImportContainer(), |
96 | | - super.toString()); |
| 85 | + return headerPrefix |
| 86 | + + "package " + packageNamespace + ";\n\n" |
| 87 | + + getImportContainer() + "\n" |
| 88 | + + super.toString(); |
97 | 89 | } |
98 | 90 |
|
99 | 91 | /** |
100 | 92 | * @return Returns the formatted writer contents without headers, package declarations, or imports. |
101 | 93 | */ |
102 | 94 | public String toContentString() { |
103 | 95 | putNameContext(); |
104 | | - setExpressionStart(PLACEHOLDER_FORMAT_CHAR); |
105 | | - return format("£L", super.toString()); |
| 96 | + return super.toString(); |
106 | 97 | } |
107 | 98 |
|
108 | 99 | /** |
@@ -228,9 +219,10 @@ private String getPlaceholder(Symbol symbol) { |
228 | 219 | addImport(normalizedSymbol); |
229 | 220 | addToSymbolTable(normalizedSymbol); |
230 | 221 |
|
231 | | - // Return a placeholder value that will be filled when toString is called |
| 222 | + // Return a deferred value that resolves the type name at toString() time |
232 | 223 | // [] is replaced with "Array" to ensure array types don't break formatter. |
233 | | - return format("$L{$L:L}", PLACEHOLDER_FORMAT_CHAR, symbol.getFullName().replace("[]", "Array")); |
| 224 | + String fullName = symbol.getFullName().replace("[]", "Array"); |
| 225 | + return defer(() -> format("${" + fullName + ":L}")); |
234 | 226 | } |
235 | 227 | } |
236 | 228 |
|
|
0 commit comments