Use StringJoiner in collections' toString() methods.
Change-Id: I0df19b84e375c51dea6932cfdab5915144540587
diff --git a/user/super/com/google/gwt/emul/java/util/AbstractCollection.java b/user/super/com/google/gwt/emul/java/util/AbstractCollection.java
index 17b89d5..4c8067d 100644
--- a/user/super/com/google/gwt/emul/java/util/AbstractCollection.java
+++ b/user/super/com/google/gwt/emul/java/util/AbstractCollection.java
@@ -143,18 +143,11 @@
@Override
public String toString() {
- StringBuilder sb = new StringBuilder("[");
- boolean comma = false;
+ StringJoiner joiner = new StringJoiner(", ", "[", "]");
for (E e : this) {
- if (comma) {
- sb.append(", ");
- } else {
- comma = true;
- }
- sb.append(e == this ? "(this Collection)" : String.valueOf(e));
+ joiner.add(e == this ? "(this Collection)" : String.valueOf(e));
}
- sb.append("]");
- return sb.toString();
+ return joiner.toString();
}
private boolean advanceToFind(Object o, boolean remove) {
diff --git a/user/super/com/google/gwt/emul/java/util/AbstractMap.java b/user/super/com/google/gwt/emul/java/util/AbstractMap.java
index 0fdf993..efe6ebb 100644
--- a/user/super/com/google/gwt/emul/java/util/AbstractMap.java
+++ b/user/super/com/google/gwt/emul/java/util/AbstractMap.java
@@ -269,20 +269,15 @@
@Override
public String toString() {
- StringBuilder sb = new StringBuilder("{");
- boolean comma = false;
+ StringJoiner joiner = new StringJoiner(", ", "{", "}");
for (Entry<K, V> entry : entrySet()) {
- if (comma) {
- sb.append(", ");
- } else {
- comma = true;
- }
- sb.append(toString(entry.getKey()));
- sb.append("=");
- sb.append(toString(entry.getValue()));
+ joiner.add(toString(entry));
}
- sb.append("}");
- return sb.toString();
+ return joiner.toString();
+ }
+
+ private String toString(Entry<K, V> entry) {
+ return toString(entry.getKey()) + "=" + toString(entry.getValue());
}
private String toString(Object o) {
diff --git a/user/super/com/google/gwt/emul/java/util/Arrays.java b/user/super/com/google/gwt/emul/java/util/Arrays.java
index cd9f352..9ad9fc7 100644
--- a/user/super/com/google/gwt/emul/java/util/Arrays.java
+++ b/user/super/com/google/gwt/emul/java/util/Arrays.java
@@ -1047,112 +1047,77 @@
if (a == null) {
return "null";
}
-
- StringBuilder b = new StringBuilder("[");
- for (int i = 0; i < a.length; i++) {
- if (i != 0) {
- b.append(", ");
- }
- b.append(String.valueOf(a[i]));
+ StringJoiner joiner = new StringJoiner(", ", "[", "]");
+ for (boolean element : a) {
+ joiner.add(String.valueOf(element));
}
- b.append("]");
- return b.toString();
+ return joiner.toString();
}
public static String toString(byte[] a) {
if (a == null) {
return "null";
}
-
- StringBuilder b = new StringBuilder("[");
- for (int i = 0; i < a.length; i++) {
- if (i != 0) {
- b.append(", ");
- }
- b.append(String.valueOf(a[i]));
+ StringJoiner joiner = new StringJoiner(", ", "[", "]");
+ for (byte element : a) {
+ joiner.add(String.valueOf(element));
}
- b.append("]");
- return b.toString();
+ return joiner.toString();
}
public static String toString(char[] a) {
if (a == null) {
return "null";
}
-
- StringBuilder b = new StringBuilder("[");
- for (int i = 0; i < a.length; i++) {
- if (i != 0) {
- b.append(", ");
- }
- b.append(String.valueOf(a[i]));
+ StringJoiner joiner = new StringJoiner(", ", "[", "]");
+ for (char element : a) {
+ joiner.add(String.valueOf(element));
}
- b.append("]");
- return b.toString();
+ return joiner.toString();
}
public static String toString(double[] a) {
if (a == null) {
return "null";
}
-
- StringBuilder b = new StringBuilder("[");
- for (int i = 0; i < a.length; i++) {
- if (i != 0) {
- b.append(", ");
- }
- b.append(String.valueOf(a[i]));
+ StringJoiner joiner = new StringJoiner(", ", "[", "]");
+ for (double element : a) {
+ joiner.add(String.valueOf(element));
}
- b.append("]");
- return b.toString();
+ return joiner.toString();
}
public static String toString(float[] a) {
if (a == null) {
return "null";
}
-
- StringBuilder b = new StringBuilder("[");
- for (int i = 0; i < a.length; i++) {
- if (i != 0) {
- b.append(", ");
- }
- b.append(String.valueOf(a[i]));
+ StringJoiner joiner = new StringJoiner(", ", "[", "]");
+ for (float element : a) {
+ joiner.add(String.valueOf(element));
}
- b.append("]");
- return b.toString();
+ return joiner.toString();
}
public static String toString(int[] a) {
if (a == null) {
return "null";
}
-
- StringBuilder b = new StringBuilder("[");
- for (int i = 0; i < a.length; i++) {
- if (i != 0) {
- b.append(", ");
- }
- b.append(String.valueOf(a[i]));
+ StringJoiner joiner = new StringJoiner(", ", "[", "]");
+ for (int element : a) {
+ joiner.add(String.valueOf(element));
}
- b.append("]");
- return b.toString();
+ return joiner.toString();
}
public static String toString(long[] a) {
if (a == null) {
return "null";
}
-
- StringBuilder b = new StringBuilder("[");
- for (int i = 0; i < a.length; i++) {
- if (i != 0) {
- b.append(", ");
- }
- b.append(String.valueOf(a[i]));
+ StringJoiner joiner = new StringJoiner(", ", "[", "]");
+ for (long element : a) {
+ joiner.add(String.valueOf(element));
}
- b.append("]");
- return b.toString();
+ return joiner.toString();
}
public static String toString(Object[] x) {
@@ -1167,16 +1132,11 @@
if (a == null) {
return "null";
}
-
- StringBuilder b = new StringBuilder("[");
- for (int i = 0; i < a.length; i++) {
- if (i != 0) {
- b.append(", ");
- }
- b.append(String.valueOf(a[i]));
+ StringJoiner joiner = new StringJoiner(", ", "[", "]");
+ for (short element : a) {
+ joiner.add(String.valueOf(element));
}
- b.append("]");
- return b.toString();
+ return joiner.toString();
}
/**
@@ -1187,54 +1147,45 @@
return "null";
}
- if (arraysIveSeen.contains(a)) {
+ if (!arraysIveSeen.add(a)) {
return "[...]";
}
- arraysIveSeen.add(a);
-
- StringBuilder b = new StringBuilder("[");
- for (int i = 0; i < a.length; i++) {
- if (i != 0) {
- b.append(", ");
- }
- Object obj = a[i];
- if (obj == null) {
- b.append("null");
- } else if (obj.getClass().isArray()) {
+ StringJoiner joiner = new StringJoiner(", ", "[", "]");
+ for (Object obj : a) {
+ if (obj != null && obj.getClass().isArray()) {
if (obj instanceof Object[]) {
if (arraysIveSeen.contains(obj)) {
- b.append("[...]");
+ joiner.add("[...]");
} else {
Object[] objArray = (Object[]) obj;
HashSet<Object[]> tempSet = new HashSet<Object[]>(arraysIveSeen);
- b.append(deepToString(objArray, tempSet));
+ joiner.add(deepToString(objArray, tempSet));
}
} else if (obj instanceof boolean[]) {
- b.append(toString((boolean[]) obj));
+ joiner.add(toString((boolean[]) obj));
} else if (obj instanceof byte[]) {
- b.append(toString((byte[]) obj));
+ joiner.add(toString((byte[]) obj));
} else if (obj instanceof char[]) {
- b.append(toString((char[]) obj));
+ joiner.add(toString((char[]) obj));
} else if (obj instanceof short[]) {
- b.append(toString((short[]) obj));
+ joiner.add(toString((short[]) obj));
} else if (obj instanceof int[]) {
- b.append(toString((int[]) obj));
+ joiner.add(toString((int[]) obj));
} else if (obj instanceof long[]) {
- b.append(toString((long[]) obj));
+ joiner.add(toString((long[]) obj));
} else if (obj instanceof float[]) {
- b.append(toString((float[]) obj));
+ joiner.add(toString((float[]) obj));
} else if (obj instanceof double[]) {
- b.append(toString((double[]) obj));
+ joiner.add(toString((double[]) obj));
} else {
assert false : "Unexpected array type: " + obj.getClass().getName();
}
} else {
- b.append(String.valueOf(obj));
+ joiner.add(String.valueOf(obj));
}
}
- b.append("]");
- return b.toString();
+ return joiner.toString();
}
private static int getCopyLength(Object array, int from, int to) {