Example usage for com.fasterxml.jackson.databind.deser DeserializationProblemHandler DeserializationProblemHandler

List of usage examples for com.fasterxml.jackson.databind.deser DeserializationProblemHandler DeserializationProblemHandler

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind.deser DeserializationProblemHandler DeserializationProblemHandler.

Prototype

DeserializationProblemHandler

Source Link

Usage

From source file:de.javagl.jgltf.model.io.JacksonUtils.java

/**
 * Create a DeserializationProblemHandler that may be added to an
 * ObjectMapper, and will handle unknown properties by forwarding 
 * the error information to the given consumer, if it is not 
 * <code>null</code>/*from   w  ww .j  av a 2 s. c o  m*/
 * 
 * @param jsonErrorConsumer The consumer for {@link JsonError}s
 * @return The problem handler
 */
private static DeserializationProblemHandler createDeserializationProblemHandler(
        Consumer<? super JsonError> jsonErrorConsumer) {
    return new DeserializationProblemHandler() {
        @Override
        public boolean handleUnknownProperty(DeserializationContext ctxt, JsonParser jp,
                JsonDeserializer<?> deserializer, Object beanOrClass, String propertyName)
                throws IOException, JsonProcessingException {
            if (jsonErrorConsumer != null) {
                jsonErrorConsumer.accept(
                        new JsonError("Unknown property: " + propertyName, jp.getParsingContext(), null));
            }
            return super.handleUnknownProperty(ctxt, jp, deserializer, beanOrClass, propertyName);
        }
    };
}

From source file:com.msopentech.odatajclient.engine.data.Deserializer.java

public static Edmx toMetadata(final InputStream input) {
    try {//from  www  .  j  a  va 2s.  co m
        final XmlMapper xmlMapper = new XmlMapper(
                new XmlFactory(new InputFactoryImpl(), new OutputFactoryImpl()), new JacksonXmlModule());
        xmlMapper.addHandler(new DeserializationProblemHandler() {

            @Override
            public boolean handleUnknownProperty(final DeserializationContext ctxt, final JsonParser jp,
                    final JsonDeserializer<?> deserializer, final Object beanOrClass, final String propertyName)
                    throws IOException, JsonProcessingException {

                // 1. special handling of AbstractAnnotatedEdm's fields
                if (beanOrClass instanceof AbstractAnnotatedEdm
                        && AbstractAnnotatedEdmUtils.isAbstractAnnotatedProperty(propertyName)) {

                    AbstractAnnotatedEdmUtils.parseAnnotatedEdm((AbstractAnnotatedEdm) beanOrClass, jp);
                } // 2. skip any other unknown property
                else {
                    ctxt.getParser().skipChildren();
                }

                return true;
            }
        });
        return xmlMapper.readValue(input, Edmx.class);
    } catch (Exception e) {
        throw new IllegalArgumentException("Could not parse as Edmx document", e);
    }
}

From source file:org.zalando.jackson.module.unknownproperty.UnknownPropertyModuleTest.java

private DeserializationProblemHandler alwaysRepondWith(final boolean value) {
    return new DeserializationProblemHandler() {
        @Override//w  w w  .ja v a2s . c  o m
        public boolean handleUnknownProperty(final DeserializationContext context, final JsonParser parser,
                final JsonDeserializer<?> deserializer, final Object beanOrClass, final String propertyName) {
            return value;
        }
    };
}

From source file:org.apache.olingo.client.core.serialization.ClientODataDeserializerImpl.java

protected XmlMapper getXmlMapper() {
    final XmlMapper xmlMapper = new XmlMapper(new XmlFactory(new InputFactoryImpl(), new OutputFactoryImpl()),
            new JacksonXmlModule());

    xmlMapper.setInjectableValues(new InjectableValues.Std().addValue(Boolean.class, Boolean.FALSE));

    xmlMapper.addHandler(new DeserializationProblemHandler() {
        @Override//from   w  ww . ja  v  a  2s  . c om
        public boolean handleUnknownProperty(final DeserializationContext ctxt, final JsonParser jp,
                final com.fasterxml.jackson.databind.JsonDeserializer<?> deserializer, final Object beanOrClass,
                final String propertyName) throws IOException, JsonProcessingException {

            // skip any unknown property
            ctxt.getParser().skipChildren();
            return true;
        }
    });
    return xmlMapper;
}