Skip to content

Commit 031a211

Browse files
authored
Added StringJoiner to generate json.
1 parent af7cff8 commit 031a211

File tree

1 file changed

+23
-22
lines changed
  • src/main/java/com/github/underscore/lodash

1 file changed

+23
-22
lines changed

src/main/java/com/github/underscore/lodash/Json.java

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.Iterator;
2828
import java.util.List;
2929
import java.util.Map;
30+
import java.util.StringJoiner;
3031

3132
public final class Json {
3233
private Json() {}
@@ -84,42 +85,42 @@ public String getWrapLine() {
8485
}
8586
}
8687

87-
private final StringBuilder builder;
88+
private final StringJoiner builder;
8889
private final Step identStep;
8990
private final Type type;
9091
private int ident;
9192

9293
public JsonStringBuilder(Step identStep) {
93-
builder = new StringBuilder(Type.PURE.getInitial());
94+
builder = new StringJoiner("").add(Type.PURE.getInitial());
9495
this.identStep = identStep;
9596
this.type = Type.PURE;
9697
}
9798

9899
public JsonStringBuilder(Type type) {
99-
builder = new StringBuilder(type.getInitial());
100+
builder = new StringJoiner("").add(type.getInitial());
100101
this.identStep = Step.TWO_SPACES;
101102
this.type = type;
102103
}
103104

104105
public JsonStringBuilder() {
105-
builder = new StringBuilder();
106+
builder = new StringJoiner("");
106107
this.identStep = Step.TWO_SPACES;
107108
this.type = Type.PURE;
108109
}
109110

110111
public JsonStringBuilder append(final char character) {
111-
builder.append(character);
112+
builder.add(String.valueOf(character));
112113
return this;
113114
}
114115

115116
public JsonStringBuilder append(final String string) {
116-
builder.append(string);
117+
builder.add(string);
117118
return this;
118119
}
119120

120121
public JsonStringBuilder fillSpaces() {
121122
for (int index = 0; index < ident; index += 1) {
122-
builder.append(identStep == Step.TABS ? '\t' : ' ');
123+
builder.add(String.valueOf(identStep == Step.TABS ? '\t' : ' '));
123124
}
124125
return this;
125126
}
@@ -136,7 +137,7 @@ public JsonStringBuilder decIdent() {
136137

137138
public JsonStringBuilder newLine() {
138139
if (identStep != Step.COMPACT) {
139-
builder.append(type.getNewLine());
140+
builder.add(type.getNewLine());
140141
}
141142
return this;
142143
}
@@ -435,52 +436,52 @@ public static String escape(String s) {
435436
if (s == null) {
436437
return null;
437438
}
438-
StringBuilder sb = new StringBuilder();
439+
StringJoiner sb = new StringJoiner("");
439440
escape(s, sb);
440441
return sb.toString();
441442
}
442443

443-
private static void escape(String s, StringBuilder sb) {
444+
private static void escape(String s, StringJoiner sb) {
444445
final int len = s.length();
445446
for (int i = 0; i < len; i++) {
446447
char ch = s.charAt(i);
447448
switch (ch) {
448449
case '"':
449-
sb.append("\\\"");
450+
sb.add("\\\"");
450451
break;
451452
case '\\':
452-
sb.append("\\\\");
453+
sb.add("\\\\");
453454
break;
454455
case '\b':
455-
sb.append("\\b");
456+
sb.add("\\b");
456457
break;
457458
case '\f':
458-
sb.append("\\f");
459+
sb.add("\\f");
459460
break;
460461
case '\n':
461-
sb.append("\\n");
462+
sb.add("\\n");
462463
break;
463464
case '\r':
464-
sb.append("\\r");
465+
sb.add("\\r");
465466
break;
466467
case '\t':
467-
sb.append("\\t");
468+
sb.add("\\t");
468469
break;
469470
case '€':
470-
sb.append("€");
471+
sb.add("€");
471472
break;
472473
default:
473474
if (ch <= '\u001F'
474475
|| ch >= '\u007F' && ch <= '\u009F'
475476
|| ch >= '\u2000' && ch <= '\u20FF') {
476477
String ss = Integer.toHexString(ch);
477-
sb.append("\\u");
478+
sb.add("\\u");
478479
for (int k = 0; k < 4 - ss.length(); k++) {
479-
sb.append('0');
480+
sb.add("0");
480481
}
481-
sb.append(ss.toUpperCase());
482+
sb.add(ss.toUpperCase());
482483
} else {
483-
sb.append(ch);
484+
sb.add(String.valueOf(ch));
484485
}
485486
break;
486487
}

0 commit comments

Comments
 (0)