Made deepCopy public (#1091)

* Made deepCopy public

* since 2.8.2
This commit is contained in:
inder123 2017-05-31 10:33:37 -07:00 committed by GitHub
parent 2a08e3906c
commit 3090a7ed2a
5 changed files with 22 additions and 5 deletions

View File

@ -44,8 +44,12 @@ public final class JsonArray extends JsonElement implements Iterable<JsonElement
elements = new ArrayList<JsonElement>(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) {

View File

@ -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.

View File

@ -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;
}

View File

@ -33,8 +33,12 @@ public final class JsonObject extends JsonElement {
private final LinkedTreeMap<String, JsonElement> members =
new LinkedTreeMap<String, JsonElement>();
/**
* 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<String, JsonElement> entry : members.entrySet()) {
result.add(entry.getKey(), entry.getValue().deepCopy());

View File

@ -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;
}