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:com.basho.riak.client.raw.http.NamedJSFunctionDeserializer.java

@Override
public NamedJSFunction deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    JsonToken token = jp.getCurrentToken();

    if (JsonToken.START_OBJECT.equals(token)) {

        String name = null;//  ww  w  .  j  ava  2 s.  co  m

        while (!JsonToken.END_OBJECT.equals(token)) {
            String field = jp.getCurrentName();

            if (Constants.FL_SCHEMA_FUN_NAME.equals(field)) {
                jp.nextToken();
                name = jp.getText();
            }
            token = jp.nextToken();
        }
        if (name != null) {
            return new NamedJSFunction(name);
        } else {
            return null;
        }
    }
    throw ctxt.mappingException(NamedJSFunction.class);
}

From source file:javaslang.jackson.datatype.deserialize.OptionDeserializer.java

@Override
public Option<?> deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
    if (plainMode) {
        Object obj = deserializer(0).deserialize(p, ctxt);
        return Option.of(obj);
    }/*from w  ww .  ja  v  a 2 s  .c  o m*/
    boolean defined = false;
    Object value = null;
    int cnt = 0;
    while (p.nextToken() != JsonToken.END_ARRAY) {
        cnt++;
        switch (cnt) {
        case 1:
            String def = (String) stringDeserializer.deserialize(p, ctxt);
            if ("defined".equals(def)) {
                defined = true;
            } else if ("undefined".equals(def)) {
                defined = false;
            } else {
                throw ctxt.mappingException(javaType.getRawClass());
            }
            break;
        case 2:
            value = deserializer(0).deserialize(p, ctxt);
            break;
        }
    }
    if (defined) {
        if (cnt != 2) {
            throw ctxt.mappingException(javaType.getRawClass());
        }
        return Option.some(value);
    } else {
        if (cnt != 1) {
            throw ctxt.mappingException(javaType.getRawClass());
        }
        return Option.none();
    }
}

From source file:org.agorava.twitter.jackson.LocalTrendsDeserializer.java

@Override
public LocalTrendsHolder deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    JsonNode tree = jp.readValueAsTree();
    Iterator<JsonNode> dayIt = tree.iterator();
    if (dayIt.hasNext()) {
        JsonNode day = dayIt.next();//from   w  w w  . j  ava2s .  c  o m
        Date createdAt = toDate(day.get("created_at").asText());
        JsonNode trendNodes = day.get("trends");
        List<Trend> trends = new ArrayList<Trend>();
        for (Iterator<JsonNode> trendsIt = trendNodes.iterator(); trendsIt.hasNext();) {
            JsonNode trendNode = trendsIt.next();
            trends.add(new Trend(trendNode.get("name").asText(), trendNode.get("query").textValue()));
        }
        jp.skipChildren();
        return new LocalTrendsHolder(new Trends(createdAt, trends));
    }

    throw ctxt.mappingException(LocalTrendsHolder.class);
}

From source file:org.springframework.social.twitter.api.impl.LocalTrendsDeserializer.java

@Override
public LocalTrendsHolder deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    JsonNode node = jp.readValueAs(JsonNode.class);
    Iterator<JsonNode> dayIt = node.iterator();
    if (dayIt.hasNext()) {
        JsonNode day = dayIt.next();//from   w  w w . ja v a 2s  .  co m
        Date createdAt = toDate(day.get("created_at").asText());
        JsonNode trendNodes = day.get("trends");
        List<Trend> trends = new ArrayList<Trend>();
        for (Iterator<JsonNode> trendsIt = trendNodes.iterator(); trendsIt.hasNext();) {
            JsonNode trendNode = trendsIt.next();
            trends.add(new Trend(trendNode.get("name").asText(), trendNode.get("query").asText()));
        }
        jp.skipChildren();
        return new LocalTrendsHolder(new Trends(createdAt, trends));
    }

    throw ctxt.mappingException(LocalTrendsHolder.class);
}

From source file:com.basho.riak.client.raw.http.NamedErlangFunctionDeserializer.java

@Override
public NamedErlangFunction deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    JsonToken token = jp.getCurrentToken();

    if (JsonToken.START_OBJECT.equals(token)) {

        String mod = null;/*from   w  ww.  j  av  a  2s  . c o  m*/
        String fun = null;

        while (!JsonToken.END_OBJECT.equals(token)) {
            String field = jp.getCurrentName();

            if (Constants.FL_SCHEMA_FUN_MOD.equals(field)) {
                jp.nextToken();
                mod = jp.getText();
            } else if (Constants.FL_SCHEMA_FUN_FUN.equals(field)) {
                jp.nextToken();
                fun = jp.getText();
            }
            token = jp.nextToken();
        }
        if (mod != null && fun != null) {
            return new NamedErlangFunction(mod, fun);
        } else {
            return null;
        }
    }
    throw ctxt.mappingException(NamedErlangFunction.class);
}

From source file:io.swagger.inflector.config.DirectionDeserializer.java

@Override
public Set<Configuration.Direction> deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    final JsonToken token = jp.getCurrentToken();
    if (token == JsonToken.VALUE_FALSE) {
        return EnumSet.noneOf(Configuration.Direction.class);
    } else if (token == JsonToken.VALUE_TRUE) {
        return EnumSet.allOf(Configuration.Direction.class);
    } else if (token == JsonToken.START_ARRAY) {
        final Set<Configuration.Direction> items = EnumSet.noneOf(Configuration.Direction.class);
        while (true) {
            final JsonToken next = jp.nextToken();
            if (next == JsonToken.VALUE_STRING) {
                final String name = jp.getText();
                items.add(Configuration.Direction.valueOf(name));
            } else if (next == JsonToken.END_ARRAY) {
                return items;
            } else {
                break;
            }/*from  w ww .ja  v a  2s  . c o  m*/
        }
    }
    throw ctxt.mappingException(Configuration.Direction.class);
}

From source file:com.addthis.bundle.value.ValueDeserializer.java

@Override
public ValueObject deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    JsonToken t = jp.getCurrentToken();/*from   ww w. j  a  va  2  s  .  c  o  m*/
    switch (t) {
    case VALUE_TRUE:
    case VALUE_FALSE:
    case VALUE_STRING:
        return jp.readValueAs(ValueString.class);
    case VALUE_NUMBER_INT:
        return jp.readValueAs(ValueLong.class);
    case VALUE_NUMBER_FLOAT:
        return jp.readValueAs(ValueDouble.class);
    case START_ARRAY:
        return jp.readValueAs(ValueArray.class);
    case START_OBJECT:
    case FIELD_NAME:
        return jp.readValueAs(ValueMap.class);
    case END_OBJECT:
        // calling jp.readValueAs here will return null rather than an empty map, so make empty map in tokens
        jp.nextToken();
        ObjectNode objectNode = ctxt.getNodeFactory().objectNode();
        JsonParser emptyObjectParser = jp.getCodec().treeAsTokens(objectNode);
        emptyObjectParser.nextToken();
        return emptyObjectParser.readValueAs(ValueMap.class);
    case VALUE_EMBEDDED_OBJECT:
    default:
        throw ctxt.mappingException(handledType());
    }
}

From source file:com.tikinou.schedulesdirect.core.jackson.deser.BooleanYNDeserializer.java

@Override
public Boolean deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    JsonToken t = jp.getCurrentToken();//from w ww. j  a v a 2s. c  o  m
    if (t == JsonToken.VALUE_TRUE) {
        return Boolean.TRUE;
    }
    if (t == JsonToken.VALUE_FALSE) {
        return Boolean.FALSE;
    }
    if (t == JsonToken.VALUE_NULL) {
        return null;
    }
    if (t == JsonToken.VALUE_NUMBER_INT) {
        return (jp.getIntValue() != 0);
    }
    if (t == JsonToken.VALUE_STRING) {
        String text = jp.getText().trim();
        if ("true".equals(text)) {
            return Boolean.TRUE;
        }
        if ("false".equals(text) || text.length() == 0) {
            return Boolean.FALSE;
        }

        if ("N".equalsIgnoreCase(text) || text.length() == 0) {
            return Boolean.FALSE;
        }

        if ("Y".equalsIgnoreCase(text)) {
            return Boolean.TRUE;
        }
        throw ctxt.weirdStringException(text, Boolean.class, "only \"true\" or \"false\" recognized");
    }
    // Otherwise, no can do:
    throw ctxt.mappingException(Boolean.class);
}

From source file:com.kaaprotech.satu.jackson.SatuDeserializers.java

@Override
public JsonDeserializer<?> findCollectionDeserializer(final CollectionType type,
        final DeserializationConfig config, final BeanDescription beanDesc,
        final TypeDeserializer elementTypeDeserializer, final JsonDeserializer<?> elementDeserializer)
        throws JsonMappingException {

    if (ImmutableSet.class.isAssignableFrom(type.getRawClass())) {
        return new StdDeserializer<Object>(type) {
            private static final long serialVersionUID = 1L;

            @Override/*from w w w  .  j  a v  a 2 s  . c  o m*/
            public Object deserialize(JsonParser jp, DeserializationContext context) throws IOException {

                if (jp.isExpectedStartArrayToken()) {
                    JsonToken t;

                    MutableSet<Object> s = Sets.mutable.of();

                    while ((t = jp.nextToken()) != JsonToken.END_ARRAY) {
                        Object value;
                        if (t == JsonToken.VALUE_NULL) {
                            value = null;
                        } else if (elementDeserializer == null) {
                            value = jp.readValueAs(type.getContentType().getRawClass());
                        } else if (elementTypeDeserializer == null) {
                            value = elementDeserializer.deserialize(jp, context);
                        } else {
                            value = elementDeserializer.deserializeWithType(jp, context,
                                    elementTypeDeserializer);
                        }
                        s.add(value);
                    }
                    return s.toImmutable();
                }
                throw context.mappingException(type.getRawClass());
            }
        };
    }

    return super.findCollectionDeserializer(type, config, beanDesc, elementTypeDeserializer,
            elementDeserializer);
}

From source file:org.apache.ode.jacob.soup.jackson.MessageDeserializer.java

@Override
public Message deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    long id = 0;//from w  w w. j ava 2  s.co  m
    String action = null;
    ChannelRef to = null;
    ChannelRef replyTo = null;
    Map<String, Object> headers = null;
    Object body = null;

    while (jp.nextToken() != JsonToken.END_OBJECT) {
        String fieldname = jp.getCurrentName();
        if (jp.getCurrentToken() == JsonToken.FIELD_NAME) {
            // if we're not already on the field, advance by one.
            jp.nextToken();
        }

        if ("id".equals(fieldname)) {
            id = jp.getLongValue();
        } else if ("action".equals(fieldname)) {
            action = jp.getText();
        } else if ("to".equals(fieldname)) {
            to = jp.readValueAs(ChannelRef.class);
        } else if ("replyTo".equals(fieldname)) {
            replyTo = jp.readValueAs(ChannelRef.class);
        } else if ("headers".equals(fieldname)) {
            headers = jp.readValueAs(mapTypeRef);
        } else if ("body".equals(fieldname)) {
            body = jp.readValueAs(Object.class);
        }
    }

    if (action == null) {
        throw ctxt.mappingException(Message.class);
    }

    if (to == null) {
        throw ctxt.mappingException(Message.class);
    }

    Message msg = new Message(to, replyTo, action);
    msg.setHeaders(headers);
    msg.setBody(body);
    msg.setId(id);

    return msg;
}