![JAR search and dependency download from the Maven repository](/logo.png)
dev.harrel.jsonschema.providers.OrgJsonNode Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of json-schema Show documentation
Show all versions of json-schema Show documentation
Library for JSON schema validation
package dev.harrel.jsonschema.providers;
import dev.harrel.jsonschema.JsonNode;
import dev.harrel.jsonschema.JsonNodeFactory;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
import java.util.*;
public final class OrgJsonNode extends SimpleJsonNode {
private OrgJsonNode(Object node, String jsonPointer) {
super(Objects.requireNonNull(node), jsonPointer);
}
public OrgJsonNode(Object node) {
this(node, "");
}
@Override
public boolean asBoolean() {
return (Boolean) node;
}
@Override
public String asString() {
return node.toString();
}
@Override
List createArray() {
JSONArray jsonArray = (JSONArray) node;
List elements = new ArrayList<>(jsonArray.length());
for (Object o : jsonArray) {
elements.add(new OrgJsonNode(o, jsonPointer + "/" + elements.size()));
}
return elements;
}
@Override
Map createObject() {
JSONObject jsonObject = (JSONObject) node;
Map map = MapUtil.newHashMap(jsonObject.length());
for (String key : jsonObject.keySet()) {
map.put(key, new OrgJsonNode(jsonObject.get(key), jsonPointer + "/" + JsonNode.encodeJsonPointer(key)));
}
return map;
}
@Override
boolean isNull(Object node) {
return JSONObject.NULL.equals(node);
}
@Override
boolean isArray(Object node) {
return node instanceof JSONArray;
}
@Override
boolean isObject(Object node) {
return node instanceof JSONObject;
}
public static final class Factory implements JsonNodeFactory {
@Override
public JsonNode wrap(Object node) {
if (node instanceof OrgJsonNode) {
return new OrgJsonNode(((OrgJsonNode) node).node);
} else {
return new OrgJsonNode(node);
}
}
@Override
public JsonNode create(String rawJson) {
return new OrgJsonNode(new JSONTokener(rawJson).nextValue());
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy