Example usage for com.fasterxml.jackson.databind.module SimpleModule addAbstractTypeMapping

List of usage examples for com.fasterxml.jackson.databind.module SimpleModule addAbstractTypeMapping

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind.module SimpleModule addAbstractTypeMapping.

Prototype

public <T> SimpleModule addAbstractTypeMapping(Class<T> superType, Class<? extends T> subType) 

Source Link

Document

Lazily-constructed resolver used for storing mappings from abstract classes to more specific implementing classes (which may be abstract or concrete)

Usage

From source file:de.fraunhofer.iosb.ilt.sta.deserialize.EntityParser.java

public EntityParser(Class<? extends Id> idClass) {
    CustomDeserializationManager.getInstance().registerDeserializer("application/vnd.geo+json",
            new GeoJsonDeserializier());
    mapper = new ObjectMapper().enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
            .enable(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS);
    //mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
    mapper.setPropertyNamingStrategy(new EntitySetCamelCaseNamingStrategy());
    mapper.addMixIn(Datastream.class, DatastreamMixIn.class);
    mapper.addMixIn(MultiDatastream.class, MultiDatastreamMixIn.class);
    mapper.addMixIn(FeatureOfInterest.class, FeatureOfInterestMixIn.class);
    mapper.addMixIn(HistoricalLocation.class, HistoricalLocationMixIn.class);
    mapper.addMixIn(Location.class, LocationMixIn.class);
    mapper.addMixIn(Observation.class, ObservationMixIn.class);
    mapper.addMixIn(ObservedProperty.class, ObservedPropertyMixIn.class);
    mapper.addMixIn(Sensor.class, SensorMixIn.class);
    mapper.addMixIn(Thing.class, ThingMixIn.class);
    mapper.addMixIn(UnitOfMeasurement.class, UnitOfMeasurementMixIn.class);
    SimpleModule module = new SimpleModule();
    module.addAbstractTypeMapping(EntitySet.class, EntitySetImpl.class);
    module.addAbstractTypeMapping(Id.class, idClass);
    module.addDeserializer(Location.class, new CustomEntityDeserializer(Location.class));
    module.addDeserializer(FeatureOfInterest.class, new CustomEntityDeserializer(FeatureOfInterest.class));
    module.addDeserializer(Sensor.class, new CustomEntityDeserializer(Sensor.class));
    // TODO Datastream.observationType supplies encodingType for Observation.result. How to deserialize content when ne Observation is inserted?
    //module.addDeserializer(Datastream.class, new CustomEntityDeserializer(Datastream.class));
    mapper.registerModule(module);//from www  . ja va2s .  co m
}

From source file:craterdog.smart.SmartObjectMapperTest.java

/**
 * This unit test method tests a polymorphic object.
 *
 * @throws IOException/* w w w.ja  v  a 2  s. c  o  m*/
 */
@Test
public void testPolymorphicObject() throws IOException {
    logger.info("Testing polymorphic objects...");

    SimpleModule module = new SimpleModule();
    module.addAbstractTypeMapping(SmartObject.class, PolymorphicTestObject.class);
    mapper.registerModule(module);
    PolymorphicTestObject polyObject = polymorphicReader(mapper);
    assertEquals("success", polyObject.testAttribute);

    logger.info("Polymorphic objects testing completed.\n");
}

From source file:org.dawnsci.persistence.json.JacksonMarshaller.java

public JacksonMarshaller() {
    mapper = new ObjectMapper();
    // mapping for deserializing FunctionBean
    SimpleModule module = new SimpleModule("ParameterMapping", Version.unknownVersion());
    module.addAbstractTypeMapping(IParameter.class, Parameter.class);
    mapper.registerModule(module);//from www  . j  a v a2  s .  c  om
}

From source file:org.resthub.web.converter.MappingJackson2XmlHttpMessageConverter.java

/**
 * Construct a new {@code BindingJacksonHttpMessageConverter}.
 */// w  w w .ja v  a2s.  com
public MappingJackson2XmlHttpMessageConverter() {
    super(new MediaType("application", "xml", DEFAULT_CHARSET));
    JacksonXmlModule xmlModule = new JacksonXmlModule();
    xmlModule.setDefaultUseWrapper(false);
    objectMapper = new XmlMapper(xmlModule);
    SimpleModule module = new SimpleModule();
    module.addAbstractTypeMapping(Page.class, PageResponse.class);
    objectMapper.registerModule(module);
    AnnotationIntrospector introspector = new JacksonAnnotationIntrospector();
    objectMapper.setAnnotationIntrospector(introspector);
}

From source file:org.resthub.web.converter.MappingJackson2JsonHttpMessageConverter.java

/**
 * Construct a new {@code BindingJacksonHttpMessageConverter}.
 *//*from   w  ww .  j av  a2  s. c o  m*/
public MappingJackson2JsonHttpMessageConverter() {
    super(new MediaType("application", "json", DEFAULT_CHARSET));
    objectMapper = new ObjectMapper();
    SimpleModule module = new SimpleModule();
    module.addAbstractTypeMapping(Page.class, PageResponse.class);
    objectMapper.registerModule(module);
    AnnotationIntrospector introspector = new JacksonAnnotationIntrospector();
    objectMapper.setAnnotationIntrospector(introspector);
    objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
    objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

}

From source file:org.opencommercesearch.client.ProductApi.java

private void initMapper() {
    mapper = new ObjectMapper().setDateFormat(new ISO8601DateFormat())
            .setSerializationInclusion(JsonInclude.Include.NON_NULL);
    SimpleModule module = new SimpleModule("InterfaceMapper");
    module.addAbstractTypeMapping(Product.class, DefaultProduct.class);
    mapper.registerModule(module);/*from w  w  w .j a va2  s .c o m*/
}