Skip to content

Commit

Permalink
fix merge for boolean and null values (#410)
Browse files Browse the repository at this point in the history
  • Loading branch information
maybeec committed Jun 4, 2020
1 parent 5286dc8 commit 457e3f7
Showing 1 changed file with 18 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonArrayBuilder;
import javax.json.JsonNumber;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.json.JsonReader;
Expand Down Expand Up @@ -119,23 +118,29 @@ public void inverseMerge(File workspaceFile, VariableResolver resolver, boolean

private JsonValue mergeAndResolve(JsonValue json, JsonValue mergeJson, VariableResolver resolver, Status status) {

if (json instanceof JsonObject) {
return mergeAndResolveObject((JsonObject) json, (JsonObject) mergeJson, resolver, status);
} else if (json instanceof JsonArray) {
return mergeAndResolveArray((JsonArray) json, (JsonArray) mergeJson, resolver, status);
} else if (json instanceof JsonString) {
return mergeAndResolveString((JsonString) json, (JsonString) mergeJson, resolver, status);
} else if (json instanceof JsonNumber) {
return mergeAndResolveNumber((JsonNumber) json, (JsonNumber) mergeJson, resolver, status);
} else if (json == null) {
if (json == null) {
if (mergeJson == null) {
return null;
} else {
return mergeAndResolve(mergeJson, null, resolver, status);
}
} else {
Log.err("Undefined JSON type: " + json);
return null;
switch (json.getValueType()) {
case OBJECT:
return mergeAndResolveObject((JsonObject) json, (JsonObject) mergeJson, resolver, status);
case ARRAY:
return mergeAndResolveArray((JsonArray) json, (JsonArray) mergeJson, resolver, status);
case STRING:
return mergeAndResolveString((JsonString) json, (JsonString) mergeJson, resolver, status);
case NUMBER:
case FALSE:
case TRUE:
case NULL:
return mergeAndResolveNativeType(json, mergeJson, resolver, status);
default:
Log.err("Undefined JSON type: " + json.getClass());
return null;
}
}
}

Expand Down Expand Up @@ -207,7 +212,7 @@ private JsonString mergeAndResolveString(JsonString json, JsonString mergeJson,
return Json.createValue(resolvedString);
}

private JsonNumber mergeAndResolveNumber(JsonNumber json, JsonNumber mergeJson, VariableResolver resolver,
private JsonValue mergeAndResolveNativeType(JsonValue json, JsonValue mergeJson, VariableResolver resolver,
Status status) {

if (mergeJson == null) {
Expand Down

0 comments on commit 457e3f7

Please sign in to comment.