/** For walking structures */ public JsonObject getObj(String key) { return get(key).getAsObject() ; }
public List<Resource> decodeResources() throws JsonException { JsonArray results = encoder.getResults(j); List<Resource> roots = new ArrayList<Resource>(); int len = results.size(); for (int i = 0; i < len; i++) { roots.add( decodeResource(results.get(i).getAsObject())); } return roots; }
public static JsonObject stringToJsonObject(String s) { JSONMaker jm = new JSONMaker(); JSONParser.parseAny(new StringReader(s), jm); return jm.jsonValue().getAsObject(); }
@Override public List<PatchLogInfo> listPatchLogInfo() { JsonObject obj = rpc(DeltaConst.OP_LIST_LOG_INFO, emptyObject); JsonArray array = obj.get(DeltaConst.F_ARRAY).getAsArray(); List<PatchLogInfo> x = array.stream() .map(jv->PatchLogInfo.fromJson(jv.getAsObject())) .collect(Collectors.toList()) ; return x ; }
@Override public List<DataSourceDescription> listDescriptions() { JsonObject obj = rpc(DeltaConst.OP_LIST_DSD, emptyObject); JsonArray array = obj.get(DeltaConst.F_ARRAY).getAsArray(); List<DataSourceDescription> x = array.stream() .map(jv->getDataSourceDescription(jv.getAsObject())) .collect(Collectors.toList()) ; return x ; }
public static JsonObject generateStats(DataAccessPoint access) { JsonBuilder builder = new JsonBuilder() ; statsDataset(builder, access) ; return builder.build().getAsObject() ; }
public static JsonValue accessPath(JsonValue obj, String... path) { for ( String p : path ) { if ( !obj.isObject() ) { throw new JsonException("Path traverses non-object") ; } obj = obj.getAsObject().get(p) ; } return obj ; }
public static JsonObject buildObject(Consumer<JsonBuilder> setup) { JsonBuilder b = JsonBuilder.create().startObject(LABEL) ; setup.accept(b); return b.finishObject(LABEL).build().getAsObject() ; }
public static JsonValue accessPath(JsonValue obj, String ... path) { for ( int i = 0 ; i < path.length ; i++ ) { String p = path[i] ; if ( ! obj.isObject() ) throw new JsonException("Path traverses non-object") ; obj = obj.getAsObject().get(p) ; } return obj ; }
public static JsonObject readerToJsonObject(Reader r) { JSONMaker jm = new JSONMaker(); JSONParser.parseAny(r, jm); return jm.jsonValue().getAsObject(); }
public static JsonObject generateStats(DataAccessPoint access) { JsonBuilder builder = new JsonBuilder() ; statsDataset(builder, access) ; return builder.build().getAsObject() ; }
@Override public Iterator<JsonObject> execJsonItems() { // Non-streaming. // TODO Integrate with the JSON parser to stream the results. JsonArray array = execJson().getAsArray(); List<JsonObject> x = new ArrayList<>(array.size()); array.forEach(elt->{ if ( ! elt.isObject()) throw new QueryExecException("Item in an array from a JSON query isn't an object"); x.add(elt.getAsObject()); }); return x.iterator(); }
/** Build a JsonObject. The outer object is created and then the {@code setup} function called to fill in the contents. * <pre> * buildObject(builder->{ * builder.pair("key", 1234); * }); * </pre> * * @param setup * @return JsonObject */ public static JsonObject buildObject(Consumer<JsonBuilder> setup) { JsonBuilder b = JsonBuilder.create().startObject(LABEL) ; setup.accept(b); return b.finishObject(LABEL).build().getAsObject() ; }
private BackupArea parseLogObject(BackupConfig cfg, JsonValue elt) { String name = elt.getAsObject().get(jName).getAsString().value(); String dir = elt.getAsObject().get(jDir).getAsString().value(); String file = elt.getAsObject().get(jFile).getAsString().value(); if ( name == null || dir == null || file == null ) throw new CmdException("Required: \""+jName+", \""+jDir+"\" and \""+jFile+"\""); return new BackupArea(name, dir, file); }
private JsonObject rpc(String opName, JsonObject arg) { JsonValue r = rpcToValue(opName, arg); if ( ! r.isObject() ) throw new DeltaException("Bad result to '"+opName+"': "+JSON.toStringFlat(r)); return r.getAsObject(); }
private JsonObject rpcOnce(String opName, JsonObject arg) { JsonValue r = rpcOnceToValue(opName, arg); if ( ! r.isObject() ) throw new DeltaException("Bad result to '"+opName+"': "+JSON.toStringFlat(r)); return r.getAsObject(); }
public static JsonValue access(JsonValue obj, Object... path) { for ( Object p : path ) { if ( p instanceof String ) { if ( !obj.isObject() ) { throw new JsonException("Path traverses non-object") ; } obj = obj.getAsObject().get((String)p) ; } if ( p instanceof Integer ) { if ( !obj.isArray() ) { throw new JsonException("Path traverses non-array") ; } obj = obj.getAsArray().get((Integer)p) ; } } return obj ; }
public static JsonObject generateStats(DataAccessPointRegistry registry) { JsonBuilder builder = new JsonBuilder() ; builder.startObject("top") ; builder.key(ServerConst.datasets) ; builder.startObject("datasets") ; registry.forEach((name, access)->statsDataset(builder, access)); builder.finishObject("datasets") ; builder.finishObject("top") ; return builder.build().getAsObject() ; }
public static JsonObject generateStats(DataAccessPointRegistry registry) { JsonBuilder builder = new JsonBuilder() ; builder.startObject("top") ; builder.key(ServerConst.datasets) ; builder.startObject("datasets") ; registry.forEach((name, access)->statsDataset(builder, access)); builder.finishObject("datasets") ; builder.finishObject("top") ; return builder.build().getAsObject() ; }
/** Create a builder from a {@link JsonValue}. * <p>If the argument is an object or array, use it to initialize the builder. * <p>If the argument is a JSON primitive (string, number, boolean or null), * <p>Otherwise thrown {@link IllegalArgumentException}. */ public static JsonBuilder createFrom(JsonValue arg) { if ( arg.isObject() ) { JsonObject obj = arg.getAsObject() ; JsonBuilder builder = JsonBuilder.create() ; builder.startObject() ; obj.forEach((k,v) -> builder.key(k).value(copy(v))) ; builder.finishObject() ; return builder ; } if ( arg.isArray() ) { JsonArray array = arg.getAsArray() ; JsonBuilder builder = JsonBuilder.create() ; builder.startArray() ; array.forEach((a)->builder.value(copy(a))) ; builder.finishArray() ; return builder ; } throw new IllegalArgumentException("Not a JSON object or JSON array; "+arg); }