Example usage for com.fasterxml.jackson.databind.module SimpleAbstractTypeResolver addMapping

List of usage examples for com.fasterxml.jackson.databind.module SimpleAbstractTypeResolver addMapping

Introduction

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

Prototype

public <T> SimpleAbstractTypeResolver addMapping(Class<T> superType, Class<? extends T> subType) 

Source Link

Document

Method for adding a mapping from super type to specific subtype.

Usage

From source file:org.springframework.cloud.dataflow.server.stream.SkipperStreamDeployer.java

public static List<AppStatus> deserializeAppStatus(String platformStatus) {
    try {/*from w w  w.  j  a v a  2s . c o m*/
        if (platformStatus != null) {
            ObjectMapper mapper = new ObjectMapper();
            mapper.addMixIn(AppStatus.class, AppStatusMixin.class);
            mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
            SimpleModule module = new SimpleModule("CustomModel", Version.unknownVersion());
            SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver();
            resolver.addMapping(AppInstanceStatus.class, AppInstanceStatusImpl.class);
            module.setAbstractTypes(resolver);
            mapper.registerModule(module);
            TypeReference<List<AppStatus>> typeRef = new TypeReference<List<AppStatus>>() {
            };
            return mapper.readValue(platformStatus, typeRef);
        }
        return new ArrayList<AppStatus>();
    } catch (Exception e) {
        logger.error("Could not parse Skipper Platform Status JSON [" + platformStatus + "]. "
                + "Exception message = " + e.getMessage());
        return new ArrayList<AppStatus>();
    }
}