/** * Lazily-constructed resolver used for storing mappings from * abstract classes to more specific implementing classes * (which may be abstract or concrete) */ public <T> SimpleModule addAbstractTypeMapping(Class<T> superType, Class<? extends T> subType) { _checkNotNull(superType, "abstract type to map"); _checkNotNull(subType, "concrete type to map to"); if (_abstractTypes == null) { _abstractTypes = new SimpleAbstractTypeResolver(); } // note: addMapping() will verify arguments _abstractTypes = _abstractTypes.addMapping(superType, subType); return this; }
resolver.addMapping(VariableInstance.class, VariableInstanceImpl.class);
resolver.addMapping(VariableInstance.class, VariableInstanceImpl.class);
SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver(); resolver.addMapping(Interface.class, Implementation.class);
resolver.addMapping(BPMNActivity.class, BPMNActivityImpl.class); resolver.addMapping(ProcessInstance.class, ProcessInstanceImpl.class); resolver.addMapping(ProcessDefinition.class, ProcessDefinitionImpl.class); resolver.addMapping(BPMNSequenceFlow.class, BPMNSequenceFlowImpl.class); resolver.addMapping(IntegrationContext.class, IntegrationContextImpl.class);
/** * Lazily-constructed resolver used for storing mappings from * abstract classes to more specific implementing classes * (which may be abstract or concrete) */ public <T> SimpleModule addAbstractTypeMapping(Class<T> superType, Class<? extends T> subType) { if (_abstractTypes == null) { _abstractTypes = new SimpleAbstractTypeResolver(); } // note: addMapping() will verify arguments _abstractTypes = _abstractTypes.addMapping(superType, subType); return this; }
@Bean public Module customizeCloudCommonModelObjectMapper() { SimpleModule module = new SimpleModule("mapMixCloudRuntimeEvents", Version.unknownVersion()); module.registerSubtypes(new NamedType(CloudVariableCreatedEventImpl.class, VariableEvent.VariableEvents.VARIABLE_CREATED.name())); module.registerSubtypes(new NamedType(CloudVariableUpdatedEventImpl.class, VariableEvent.VariableEvents.VARIABLE_UPDATED.name())); module.registerSubtypes(new NamedType(CloudVariableDeletedEventImpl.class, VariableEvent.VariableEvents.VARIABLE_DELETED.name())); SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver() { //this is a workaround for https://github.com/FasterXML/jackson-databind/issues/2019 //once version 2.9.6 is related we can remove this @override method @Override public JavaType resolveAbstractType(DeserializationConfig config, BeanDescription typeDesc) { return findTypeMapping(config, typeDesc.getType()); } }; resolver.addMapping(CloudVariableInstance.class, CloudVariableInstanceImpl.class); module.setAbstractTypes(resolver); module.setMixInAnnotation(CloudRuntimeEvent.class, CloudRuntimeMixIn.class); return module; }
/** * Lazily-constructed resolver used for storing mappings from * abstract classes to more specific implementing classes * (which may be abstract or concrete) */ public <T> SimpleModule addAbstractTypeMapping(Class<T> superType, Class<? extends T> subType) { if (_abstractTypes == null) { _abstractTypes = new SimpleAbstractTypeResolver(); } // note: addMapping() will verify arguments _abstractTypes = _abstractTypes.addMapping(superType, subType); return this; }
@Bean public Module customizeCloudCommonModelObjectMapper() { SimpleModule module = new SimpleModule("mapMixCloudRuntimeEvents", Version.unknownVersion()); module.registerSubtypes(new NamedType(CloudVariableCreatedEventImpl.class, VariableEvent.VariableEvents.VARIABLE_CREATED.name())); module.registerSubtypes(new NamedType(CloudVariableUpdatedEventImpl.class, VariableEvent.VariableEvents.VARIABLE_UPDATED.name())); module.registerSubtypes(new NamedType(CloudVariableDeletedEventImpl.class, VariableEvent.VariableEvents.VARIABLE_DELETED.name())); SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver() { //this is a workaround for https://github.com/FasterXML/jackson-databind/issues/2019 //once version 2.9.6 is related we can remove this @override method @Override public JavaType resolveAbstractType(DeserializationConfig config, BeanDescription typeDesc) { return findTypeMapping(config, typeDesc.getType()); } }; resolver.addMapping(CloudVariableInstance.class, CloudVariableInstanceImpl.class); module.setAbstractTypes(resolver); module.setMixInAnnotation(CloudRuntimeEvent.class, CloudRuntimeMixIn.class); return module; }
/** * Lazily-constructed resolver used for storing mappings from * abstract classes to more specific implementing classes * (which may be abstract or concrete) */ public <T> SimpleModule addAbstractTypeMapping(Class<T> superType, Class<? extends T> subType) { if (_abstractTypes == null) { _abstractTypes = new SimpleAbstractTypeResolver(); } // note: addMapping() will verify arguments _abstractTypes = _abstractTypes.addMapping(superType, subType); return this; }
resolver.addMapping(IntegrationRequest.class, IntegrationRequestImpl.class); resolver.addMapping(IntegrationResult.class, IntegrationResultImpl.class); resolver.addMapping(CloudProcessDefinition.class, CloudProcessDefinitionImpl.class); resolver.addMapping(CloudProcessInstance.class, CloudProcessInstanceImpl.class);
/** * Lazily-constructed resolver used for storing mappings from * abstract classes to more specific implementing classes * (which may be abstract or concrete) */ public <T> SimpleModule addAbstractTypeMapping(Class<T> superType, Class<? extends T> subType) { if (_abstractTypes == null) { _abstractTypes = new SimpleAbstractTypeResolver(); } // note: addMapping() will verify arguments _abstractTypes = _abstractTypes.addMapping(superType, subType); return this; }
resolver.addMapping(CloudTask.class, CloudTaskImpl.class);
/** * Lazily-constructed resolver used for storing mappings from * abstract classes to more specific implementing classes * (which may be abstract or concrete) */ public <T> SimpleModule addAbstractTypeMapping(Class<T> superType, Class<? extends T> subType) { if (_abstractTypes == null) { _abstractTypes = new SimpleAbstractTypeResolver(); } // note: addMapping() will verify arguments _abstractTypes = _abstractTypes.addMapping(superType, subType); return this; }
@Override public void setupModule(SetupContext context) { context.addAbstractTypeResolver(new SimpleAbstractTypeResolver().addMapping(Schema.class, SchemaModelImpl.class)); context.addAbstractTypeResolver(new SimpleAbstractTypeResolver().addMapping(Microschema.class, MicroschemaModelImpl.class)); } });
public TimoCloudUniversalAPIBasicImplementation(Class<? extends ServerObject> serverObjectImplementation, Class<? extends ProxyObject> proxyObjectImplementation, Class<? extends ServerGroupObject> serverGroupObjectImplementation, Class<? extends ProxyGroupObject> proxyGroupObjectImplementation, Class<? extends PlayerObject> playerObjectImplementation, Class<? extends CordObject> cordObjectImplementation) { this.serverObjectImplementation = serverObjectImplementation; this.proxyObjectImplementation = proxyObjectImplementation; this.serverGroupObjectImplementation = serverGroupObjectImplementation; this.proxyGroupObjectImplementation = proxyGroupObjectImplementation; this.playerObjectImplementation = playerObjectImplementation; this.cordObjectImplementation = cordObjectImplementation; objectMapper = new ObjectMapper(); SimpleModule module = new SimpleModule(); SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver(); resolver.addMapping(ServerObject.class, serverObjectImplementation); resolver.addMapping(ProxyObject.class, proxyObjectImplementation); resolver.addMapping(PlayerObject.class, playerObjectImplementation); resolver.addMapping(CordObject.class, cordObjectImplementation); module.setAbstractTypes(resolver); objectMapper.registerModule(module); objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); }
public static <T> T responseToObject(HttpResponse httpResponse, Class<? extends T> object, Class<T> interfaceClass) throws IOException { ObjectMapper objectMapper = new ObjectMapper(); configureObjectMapper(objectMapper); if (interfaceClass != null) { SimpleModule module = new SimpleModule("CustomModel", Version.unknownVersion()); SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver(); resolver.addMapping(interfaceClass, object); module.setAbstractTypes(resolver); objectMapper.registerModule(module); } return objectMapper.readValue(httpResponse.getEntity().getContent(), object); }
/** * Lazily-constructed resolver used for storing mappings from * abstract classes to more specific implementing classes * (which may be abstract or concrete) */ public <T> SimpleModule addAbstractTypeMapping(Class<T> superType, Class<? extends T> subType) { _checkNotNull(superType, "abstract type to map"); _checkNotNull(subType, "concrete type to map to"); if (_abstractTypes == null) { _abstractTypes = new SimpleAbstractTypeResolver(); } // note: addMapping() will verify arguments _abstractTypes = _abstractTypes.addMapping(superType, subType); return this; }
public static List<AppStatus> deserializeAppStatus(String platformStatus) { try { 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>(); } }
public static List<AppStatus> deserializeAppStatus(String platformStatus) { try { 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>(); } }