List of usage examples for com.fasterxml.jackson.databind.node ObjectNode get
public JsonNode get(String paramString)
From source file:io.swagger.parser.util.SwaggerDeserializer.java
public Double getDouble(String key, ObjectNode node, boolean required, String location, ParseResult result) { Double value = null;/* w w w . j a v a2s. c om*/ JsonNode v = node.get(key); if (node == null || v == null) { if (required) { result.missing(location, key); result.invalid(); } } else if (v.getNodeType().equals(JsonNodeType.NUMBER)) { value = v.asDouble(); } return value; }
From source file:io.swagger.parser.util.SwaggerDeserializer.java
public Number getNumber(String key, ObjectNode node, boolean required, String location, ParseResult result) { Number value = null;/*from w ww . j a v a2s. c o m*/ JsonNode v = node.get(key); if (node == null || v == null) { if (required) { result.missing(location, key); result.invalid(); } } else if (v.getNodeType().equals(JsonNodeType.NUMBER)) { value = v.numberValue(); } return value; }
From source file:io.swagger.parser.util.SwaggerDeserializer.java
public String getString(String key, ObjectNode node, boolean required, String location, ParseResult result) { String value = null;//from w w w .j a v a2 s.com JsonNode v = node.get(key); if (node == null || v == null) { if (required) { result.missing(location, key); result.invalid(); } } else { value = v.asText(); } return value; }
From source file:io.swagger.parser.util.SwaggerDeserializer.java
public Integer getInteger(String key, ObjectNode node, boolean required, String location, ParseResult result) { Integer value = null;/*w ww. ja v a 2s .c o m*/ JsonNode v = node.get(key); if (node == null || v == null) { if (required) { result.missing(location, key); result.invalid(); } } else if (v.getNodeType().equals(JsonNodeType.NUMBER)) { value = v.intValue(); } return value; }
From source file:io.swagger.parser.util.SwaggerDeserializer.java
public Boolean getBoolean(String key, ObjectNode node, boolean required, String location, ParseResult result) { Boolean value = null;//from ww w. j a va 2s. c om JsonNode v = node.get(key); if (node == null || v == null) { if (required) { result.missing(location, key); result.invalid(); } } else { if (v.getNodeType().equals(JsonNodeType.BOOLEAN)) { value = v.asBoolean(); } else if (v.getNodeType().equals(JsonNodeType.STRING)) { String stringValue = v.textValue(); return Boolean.parseBoolean(stringValue); } } return value; }
From source file:com.googlecode.jsonrpc4j.JsonRpcServer.java
/** * Handles the given {@link ObjectNode} and writes the * responses to the given {@link OutputStream}. * * @param node the {@link JsonNode}//www.ja v a2 s . com * @param ops the {@link OutputStream} * @throws IOException on error */ public void handleObject(ObjectNode node, OutputStream ops) throws IOException { if (LOGGER.isLoggable(Level.FINE)) { LOGGER.log(Level.FINE, "Request: " + node.toString()); } // validate request if (!backwardsComaptible && !node.has("jsonrpc") || !node.has("method")) { writeAndFlushValue(ops, createErrorResponse("2.0", "null", -32600, "Invalid Request", null)); return; } // get nodes JsonNode jsonPrcNode = node.get("jsonrpc"); JsonNode methodNode = node.get("method"); JsonNode idNode = node.get("id"); JsonNode paramsNode = node.get("params"); // get node values String jsonRpc = (jsonPrcNode != null && !jsonPrcNode.isNull()) ? jsonPrcNode.asText() : "2.0"; String methodName = getMethodName(methodNode); String serviceName = getServiceName(methodNode); Object id = parseId(idNode); // find methods Set<Method> methods = new HashSet<Method>(); methods.addAll(findMethods(getHandlerInterfaces(serviceName), methodName)); if (methods.isEmpty()) { writeAndFlushValue(ops, createErrorResponse(jsonRpc, id, -32601, "Method not found", null)); return; } // choose a method MethodAndArgs methodArgs = findBestMethodByParamsNode(methods, paramsNode); if (methodArgs == null) { writeAndFlushValue(ops, createErrorResponse(jsonRpc, id, -32602, "Invalid method parameters", null)); return; } // invoke the method JsonNode result = null; Throwable thrown = null; long beforeMs = System.currentTimeMillis(); if (invocationListener != null) { invocationListener.willInvoke(methodArgs.method, methodArgs.arguments); } try { result = invoke(getHandler(serviceName), methodArgs.method, methodArgs.arguments); } catch (Throwable e) { thrown = e; } if (invocationListener != null) { invocationListener.didInvoke(methodArgs.method, methodArgs.arguments, result, thrown, System.currentTimeMillis() - beforeMs); } // respond if it's not a notification request if (id != null) { // attempt to resolve the error JsonError error = null; if (thrown != null) { // get cause of exception Throwable e = thrown; if (InvocationTargetException.class.isInstance(e)) { e = InvocationTargetException.class.cast(e).getTargetException(); } // resolve error if (errorResolver != null) { error = errorResolver.resolveError(e, methodArgs.method, methodArgs.arguments); } else { error = DEFAULT_ERRROR_RESOLVER.resolveError(e, methodArgs.method, methodArgs.arguments); } // make sure we have a JsonError if (error == null) { error = new JsonError(0, e.getMessage(), e.getClass().getName()); } } // the resoponse object ObjectNode response = null; // build error if (error != null) { response = createErrorResponse(jsonRpc, id, error.getCode(), error.getMessage(), error.getData()); // build success } else { response = createSuccessResponse(jsonRpc, id, result); } // write it writeAndFlushValue(ops, response); } // log and potentially re-throw errors if (thrown != null) { if (LOGGER.isLoggable(exceptionLogLevel)) { LOGGER.log(exceptionLogLevel, "Error in JSON-RPC Service", thrown); } if (rethrowExceptions) { throw new RuntimeException(thrown); } } }
From source file:org.dswarm.wikidataimporter.WikidataDswarmImporter.java
private JsonNode processEditEntityResponse(final String entityIdentifier, final Observable<Response> createEntityResponse, final String type) throws IOException { final Response response = createEntityResponse.toBlocking().firstOrDefault(null); if (response == null) { final String message = String.format("could not create new %s for '%s'", type, entityIdentifier); LOG.error(message);//from w ww . ja v a 2s .c o m throw new WikidataImporterError(new WikidataImporterException(message)); } final int status = response.getStatus(); LOG.debug("response status = {}", status); if (status != 200) { final String message = String.format( "could not create new %s for '%s'; response status != 200 (was '%d').", type, entityIdentifier, status); LOG.error(message); throw new WikidataImporterError(new WikidataImporterException(message)); } final String responseBody = response.readEntity(String.class); LOG.debug("response body = {}", responseBody); final ObjectNode responseJSON = MAPPER.readValue(responseBody, ObjectNode.class); if (responseJSON == null) { final String message = String.format( "could not create new %s for '%s'; could not deserialize response.", type, entityIdentifier); LOG.error(message); throw new WikidataImporterError(new WikidataImporterException(message)); } final JsonNode errorNode = responseJSON.get(MEDIAWIKI_ERROR_IDENTIFIER); if (errorNode != null) { final String message = String.format("could not create new %s for '%s'; an error occurred ('%s').", type, entityIdentifier, responseBody); LOG.debug(message); // return error so that it can be handled at the client return responseJSON; } final JsonNode successNode = responseJSON.get(MEDIAWIKI_SUCCESS_IDENTIFIER); if (successNode == null) { final String message = String.format( "could not create new %s for '%s'; no 'success' node in response ('%s')", type, entityIdentifier, responseBody); LOG.error(message); throw new WikidataImporterError(new WikidataImporterException(message)); } final int success = successNode.asInt(); if (success != 1) { final String message = String.format("could not create new %s for '%s'; 'success' = '%d'", type, entityIdentifier, success); LOG.error(message); throw new WikidataImporterError(new WikidataImporterException(message)); } final JsonNode entityNode = responseJSON.get(MEDIAWIKI_ENTITY_IDENTIFIER); if (entityNode == null) { final String message = String.format( "could not create new %s for '%s'; no 'entity' node in response ('%s')", type, entityIdentifier, responseBody); LOG.error(message); throw new WikidataImporterError(new WikidataImporterException(message)); } return entityNode; }
From source file:io.swagger.parser.util.SwaggerDeserializer.java
public Path path(ObjectNode obj, String location, ParseResult result) { boolean hasRef = false; Path output = null;/* w ww. j av a 2 s . c om*/ if (obj.get("$ref") != null) { JsonNode ref = obj.get("$ref"); if (ref.getNodeType().equals(JsonNodeType.STRING)) { return pathRef((TextNode) ref, location, result); } else if (ref.getNodeType().equals(JsonNodeType.OBJECT)) { ObjectNode on = (ObjectNode) ref; // extra keys Set<String> keys = getKeys(on); for (String key : keys) { result.extra(location, key, on.get(key)); } } return null; } Path path = new Path(); ArrayNode parameters = getArray("parameters", obj, false, location, result); path.setParameters(parameters(parameters, location, result)); ObjectNode on = getObject("get", obj, false, location, result); if (on != null) { Operation op = operation(on, location + "(get)", result); if (op != null) { path.setGet(op); } } on = getObject("put", obj, false, location, result); if (on != null) { Operation op = operation(on, location + "(put)", result); if (op != null) { path.setPut(op); } } on = getObject("post", obj, false, location, result); if (on != null) { Operation op = operation(on, location + "(post)", result); if (op != null) { path.setPost(op); } } on = getObject("head", obj, false, location, result); if (on != null) { Operation op = operation(on, location + "(head)", result); if (op != null) { path.setHead(op); } } on = getObject("delete", obj, false, location, result); if (on != null) { Operation op = operation(on, location + "(delete)", result); if (op != null) { path.setDelete(op); } } on = getObject("patch", obj, false, location, result); if (on != null) { Operation op = operation(on, location + "(patch)", result); if (op != null) { path.setPatch(op); } } on = getObject("options", obj, false, location, result); if (on != null) { Operation op = operation(on, location + "(options)", result); if (op != null) { path.setOptions(op); } } // extra keys Set<String> keys = getKeys(obj); for (String key : keys) { if (key.startsWith("x-")) { path.setVendorExtension(key, extension(obj.get(key))); } else if (!PATH_KEYS.contains(key)) { result.extra(location, key, obj.get(key)); } } return path; }
From source file:io.swagger.parser.util.SwaggerDeserializer.java
public Response response(ObjectNode node, String location, ParseResult result) { if (node == null) return null; Response output = new Response(); JsonNode ref = node.get("$ref"); if (ref != null) { if (ref.getNodeType().equals(JsonNodeType.STRING)) { return refResponse((TextNode) ref, location, result); } else {/* ww w . j a v a2 s . c om*/ result.invalidType(location, "$ref", "string", node); return null; } } String value = getString("description", node, true, location, result); output.description(value); ObjectNode schema = getObject("schema", node, false, location, result); if (schema != null) { output.schema(Json.mapper().convertValue(schema, Property.class)); } ObjectNode headersNode = getObject("headers", node, false, location, result); if (headersNode != null) { // TODO Map<String, Property> headers = Json.mapper().convertValue(headersNode, Json.mapper().getTypeFactory().constructMapType(Map.class, String.class, Property.class)); output.headers(headers); } ObjectNode examplesNode = getObject("examples", node, false, location, result); if (examplesNode != null) { Map<String, Object> examples = Json.mapper().convertValue(examplesNode, Json.mapper().getTypeFactory().constructMapType(Map.class, String.class, Object.class)); output.setExamples(examples); } // extra keys Set<String> keys = getKeys(node); for (String key : keys) { if (key.startsWith("x-")) { output.setVendorExtension(key, extension(node.get(key))); } else if (!RESPONSE_KEYS.contains(key)) { result.extra(location, key, node.get(key)); } } return output; }