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

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

Introduction

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

Prototype

public void setAbstractTypes(SimpleAbstractTypeResolver atr) 

Source Link

Document

Resets currently configured abstract type mappings

Usage

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

public static List<AppStatus> deserializeAppStatus(String platformStatus) {
    try {/*ww w .  ja va 2s  . c  om*/
        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>();
    }
}