diff --git a/gson/src/main/java/com/google/gson/JsonArray.java b/gson/src/main/java/com/google/gson/JsonArray.java index 96fe23ed..f2b3b31f 100644 --- a/gson/src/main/java/com/google/gson/JsonArray.java +++ b/gson/src/main/java/com/google/gson/JsonArray.java @@ -44,8 +44,12 @@ public final class JsonArray extends JsonElement implements Iterable(capacity); } + /** + * Creates a deep copy of this element and all its children + * @since 2.8.2 + */ @Override - JsonArray deepCopy() { + public JsonArray deepCopy() { if (!elements.isEmpty()) { JsonArray result = new JsonArray(elements.size()); for (JsonElement element : elements) { diff --git a/gson/src/main/java/com/google/gson/JsonElement.java b/gson/src/main/java/com/google/gson/JsonElement.java index 8f393aea..62bb920c 100644 --- a/gson/src/main/java/com/google/gson/JsonElement.java +++ b/gson/src/main/java/com/google/gson/JsonElement.java @@ -34,8 +34,9 @@ public abstract class JsonElement { /** * Returns a deep copy of this element. Immutable elements like primitives * and nulls are not copied. + * @since 2.8.2 */ - abstract JsonElement deepCopy(); + public abstract JsonElement deepCopy(); /** * provides check for verifying if this element is an array or not. diff --git a/gson/src/main/java/com/google/gson/JsonNull.java b/gson/src/main/java/com/google/gson/JsonNull.java index 56883369..67cb9325 100755 --- a/gson/src/main/java/com/google/gson/JsonNull.java +++ b/gson/src/main/java/com/google/gson/JsonNull.java @@ -40,8 +40,12 @@ public final class JsonNull extends JsonElement { // Do nothing } + /** + * Returns the same instance since it is an immutable value + * @since 2.8.2 + */ @Override - JsonNull deepCopy() { + public JsonNull deepCopy() { return INSTANCE; } diff --git a/gson/src/main/java/com/google/gson/JsonObject.java b/gson/src/main/java/com/google/gson/JsonObject.java index 97e7dcf4..4b63db56 100644 --- a/gson/src/main/java/com/google/gson/JsonObject.java +++ b/gson/src/main/java/com/google/gson/JsonObject.java @@ -33,8 +33,12 @@ public final class JsonObject extends JsonElement { private final LinkedTreeMap members = new LinkedTreeMap(); + /** + * Creates a deep copy of this element and all its children + * @since 2.8.2 + */ @Override - JsonObject deepCopy() { + public JsonObject deepCopy() { JsonObject result = new JsonObject(); for (Map.Entry entry : members.entrySet()) { result.add(entry.getKey(), entry.getValue().deepCopy()); diff --git a/gson/src/main/java/com/google/gson/JsonPrimitive.java b/gson/src/main/java/com/google/gson/JsonPrimitive.java index e2443d43..adb18fad 100644 --- a/gson/src/main/java/com/google/gson/JsonPrimitive.java +++ b/gson/src/main/java/com/google/gson/JsonPrimitive.java @@ -85,8 +85,12 @@ public final class JsonPrimitive extends JsonElement { setValue(primitive); } + /** + * Returns the same value as primitives are immutable. + * @since 2.8.2 + */ @Override - JsonPrimitive deepCopy() { + public JsonPrimitive deepCopy() { return this; }