Example usage for com.fasterxml.jackson.databind DeserializationContext mappingException

List of usage examples for com.fasterxml.jackson.databind DeserializationContext mappingException

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind DeserializationContext mappingException.

Prototype

public JsonMappingException mappingException(String paramString) 

Source Link

Usage

From source file:net.nullschool.grains.jackson.datatype.GrainDeserializer.java

@Override
public Grain deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonToken token = jp.getCurrentToken();
    if (token == JsonToken.START_OBJECT) {
        token = jp.nextToken();/*from   www.  ja v  a2s.  com*/
    } else if (token != JsonToken.FIELD_NAME) {
        throw ctxt.mappingException(getValueClass());
    }

    if (token == JsonToken.END_OBJECT) {
        return factory.getDefaultValue();
    }

    GrainBuilder builder = factory.getNewBuilder();

    do {
        String key = jp.getCurrentName();
        PropertyReader reader = readers.get(key);
        token = jp.nextToken();
        Object value;
        if (token == JsonToken.VALUE_NULL) {
            value = null;
        } else if (reader != null) {
            value = reader.deserializer.deserialize(jp, ctxt);
        } else {
            switch (token) {
            case START_ARRAY:
                value = extArrayDeserializer.deserialize(jp, ctxt);
                break;
            case START_OBJECT:
                value = extObjectDeserializer.deserialize(jp, ctxt);
                break;
            default:
                value = extValueDeserializer.deserialize(jp, ctxt);
            }
        }

        builder.put(key, value);
    } while (jp.nextToken() == JsonToken.FIELD_NAME);

    return builder.build();
}

From source file:io.gravitee.definition.jackson.datatype.services.healthcheck.deser.RequestDeserializer.java

@Override
public Request deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonNode node = jp.getCodec().readTree(jp);

    Request request = new Request();

    JsonNode uriNode = node.get("uri");
    if (uriNode != null) {
        request.setUri(uriNode.asText());
    } else {// ww w . j a  v a2  s .c  o m
        throw ctxt.mappingException("[healthcheck] URI is required");
    }

    final JsonNode methodNode = node.get("method");
    if (methodNode != null) {
        request.setMethod(HttpMethod.valueOf(methodNode.asText().toUpperCase()));
    } else {
        throw ctxt.mappingException("[healthcheck] Method is required");
    }

    JsonNode bodyNode = node.get("body");
    if (bodyNode != null) {
        request.setBody(bodyNode.asText());
    }

    JsonNode headersNode = node.get("headers");
    if (headersNode != null) {
        List<HttpHeader> headers = new ArrayList<>();
        headersNode.elements().forEachRemaining(headerNode -> {
            HttpHeader header = new HttpHeader();
            header.setName(headerNode.findValue("name").asText());
            header.setValue(headerNode.findValue("value").asText());
            headers.add(header);
        });

        request.setHeaders(headers);
    }

    return request;
}

From source file:org.hyperledger.dropwizard.hocon.HoconDeserializer.java

protected ConfigValue deserializeScalar(JsonParser jp, DeserializationContext ctxt) throws IOException {
    switch (jp.getCurrentToken()) {
    case VALUE_EMBEDDED_OBJECT:
        throw ctxt.mappingException(JsonValue.class);
    case VALUE_FALSE:
        return ConfigValueFactory.fromAnyRef(false);
    case VALUE_TRUE:
        return ConfigValueFactory.fromAnyRef(true);
    case VALUE_NULL:
        return ConfigValueFactory.fromAnyRef(null);
    case VALUE_NUMBER_FLOAT:
    // very cumbersome... but has to be done
    {/*  ww  w . ja  v  a  2s . c o m*/
        if (jp.getNumberType() == JsonParser.NumberType.BIG_DECIMAL) {
            return ConfigValueFactory.fromAnyRef(jp.getDecimalValue());
        }
        return ConfigValueFactory.fromAnyRef(jp.getDoubleValue());
    }
    case VALUE_NUMBER_INT: {
        switch (jp.getNumberType()) {
        case LONG:
            return ConfigValueFactory.fromAnyRef(jp.getLongValue());
        case INT:
            return ConfigValueFactory.fromAnyRef(jp.getIntValue());
        default:
            return ConfigValueFactory.fromAnyRef(jp.getBigIntegerValue());
        }
    }
    case VALUE_STRING:
        return ConfigValueFactory.fromAnyRef(jp.getText());
    default: // errors, should never get here
        //        case END_ARRAY:
        //        case END_OBJECT:
        //        case FIELD_NAME:
        //        case NOT_AVAILABLE:
        //        case START_ARRAY:
        //        case START_OBJECT:
        throw ctxt.mappingException(_valueClass);
    }
}

From source file:io.gravitee.definition.jackson.datatype.plugins.resource.deser.ResourceDeserializer.java

@Override
public Resource deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonNode node = jp.getCodec().readTree(jp);

    Resource resource = new Resource();

    final JsonNode nameNode = node.get("name");
    if (nameNode != null) {
        resource.setName(nameNode.asText());
    } else {/*from  www.  j a v a 2s. c  o m*/
        throw ctxt.mappingException("[resource] Name is required");
    }

    final JsonNode typeNode = node.get("type");
    if (typeNode != null) {
        resource.setType(typeNode.asText());
    } else {
        throw ctxt.mappingException("[resource] Type is required");
    }

    final JsonNode configurationNode = node.get("configuration");
    if (configurationNode != null) {
        resource.setConfiguration(configurationNode.toString());
    } else {
        throw ctxt.mappingException("[resource] Configuration is required");
    }

    final JsonNode enabledNode = node.get("enabled");
    if (enabledNode != null) {
        resource.setEnabled(enabledNode.asBoolean(true));
    } else {
        resource.setEnabled(true);
    }

    return resource;
}

From source file:com.inversoft.json.LocaleDeserializer.java

@Override
public Locale deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonToken t = jp.getCurrentToken();//ww  w. j  av  a2 s.c  om
    if (t == JsonToken.VALUE_STRING) {
        String str = jp.getText().trim();
        if (str.length() == 0) {
            return null;
        }

        return toLocale(str);
    }

    throw ctxt.mappingException(handledType());
}

From source file:org.mongojack.internal.DateDeserializer.java

@Override
public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonToken token = jp.getCurrentToken();
    if (token == JsonToken.VALUE_EMBEDDED_OBJECT) {
        // See if it's a date
        Object date = jp.getEmbeddedObject();
        if (date instanceof Date) {
            return (Date) date;
        } else {//from   ww w .j av a  2  s. c  o m
            throw ctxt.mappingException(Date.class);
        }
    } else {
        return _parseDate(jp, ctxt);
    }
}

From source file:org.hyperledger.jackson.ScriptDeserializer.java

@Override
public Script deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonToken t = jp.getCurrentToken();/*from   w  ww. ja v a  2s  .  com*/
    if (t == JsonToken.VALUE_STRING) {
        String scriptString = jp.getText().trim();
        if (scriptString.length() == 0) {
            return null;
        }

        return new Script(Base64.getDecoder().decode(scriptString));
    }

    throw ctxt.mappingException(handledType());
}

From source file:io.syndesis.model.integration.StepDeserializer.java

@Override
public Step deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    ObjectNode node = jp.readValueAsTree();
    JsonNode stepKind = node.get(STEP_KIND);
    if (stepKind != null) {
        String value = stepKind.textValue();
        Class<? extends Step> resourceType = getTypeForName(value);
        if (resourceType == null) {
            throw ctxt.mappingException("No step type found for kind:" + value);
        } else {/*  w w w. ja  va 2s. c o m*/
            return jp.getCodec().treeToValue(node, resourceType);
        }
    }
    return null;
}

From source file:io.gravitee.definition.jackson.datatype.api.deser.ApiDeserializer.java

@Override
public Api deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonNode node = jp.getCodec().readTree(jp);

    Api api = new Api();

    JsonNode idNode = node.get("id");
    if (idNode == null) {
        throw ctxt.mappingException("ID property is required");
    } else {//from   w ww. jav  a 2s. co m
        api.setId(idNode.asText());
    }

    JsonNode nameNode = node.get("name");
    if (nameNode == null) {
        throw ctxt.mappingException("Name property is required");
    } else {
        api.setName(nameNode.asText());
    }

    JsonNode versionNode = node.get("version");
    if (versionNode == null) {
        api.setVersion("undefined");
    } else {
        api.setVersion(versionNode.asText());
    }

    JsonNode proxyNode = node.get("proxy");
    if (proxyNode != null) {
        api.setProxy(proxyNode.traverse(jp.getCodec()).readValueAs(Proxy.class));
    } else {
        logger.error("A proxy property is required for {}", api.getName());
        throw ctxt.mappingException("A proxy property is required for " + api.getName());
    }

    JsonNode servicesNode = node.get("services");
    if (servicesNode != null) {
        Services services = servicesNode.traverse(jp.getCodec()).readValueAs(Services.class);
        api.getServices().set(services.getAll());
    }

    JsonNode resourcesNode = node.get("resources");
    if (resourcesNode != null && resourcesNode.isArray()) {
        resourcesNode.elements().forEachRemaining(resourceNode -> {
            try {
                Resource resource = resourceNode.traverse(jp.getCodec()).readValueAs(Resource.class);
                if (!api.getResources().contains(resource)) {
                    api.getResources().add(resource);
                } else {
                    logger.error("A resource already exists with name {}", resource.getName());
                    throw ctxt.mappingException("A resource already exists with name " + resource.getName());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
    }

    JsonNode pathsNode = node.get("paths");
    if (pathsNode != null) {
        final Map<String, Path> paths = new TreeMap<>(
                (Comparator<String>) (path1, path2) -> path2.compareTo(path1));
        pathsNode.fields().forEachRemaining(jsonNode -> {
            try {
                Path path = jsonNode.getValue().traverse(jp.getCodec()).readValueAs(Path.class);
                path.setPath(jsonNode.getKey());
                paths.put(jsonNode.getKey(), path);
            } catch (IOException e) {
                logger.error("Path {} can not be de-serialized", jsonNode.getKey());
            }
        });

        api.setPaths(paths);
    }

    JsonNode propertiesNode = node.get("properties");
    if (propertiesNode != null) {
        Map<String, String> properties = new TemplatedValueHashMap();
        propertiesNode.fields().forEachRemaining(
                jsonNode -> properties.put(jsonNode.getKey(), jsonNode.getValue().textValue()));

        api.setProperties(properties);
    }

    JsonNode tagsNode = node.get("tags");

    if (tagsNode != null && tagsNode.isArray()) {
        tagsNode.elements().forEachRemaining(jsonNode -> api.getTags().add(jsonNode.asText()));
    }

    return api;
}

From source file:org.springframework.social.linkedin.api.impl.json.CodeDeserializer.java

@Override
public String deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    if (jp.hasCurrentToken() && jp.getCurrentToken().equals(JsonToken.START_OBJECT)) {
        ObjectMapper mapper = new ObjectMapper();
        JsonNode node = mapper.reader(JsonNode.class).readValue(jp);
        return node.has(VALUE) ? node.get(VALUE).textValue() : null;
    }/*from w  w  w  .  j  a  v a  2s .c  o m*/

    throw ctxt.mappingException("Expected JSON object");
}