@Override public Condition deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { DtoDeserializer dtoDeserializer = new DtoDeserializer(); return (Condition)dtoDeserializer.deserialize(jp, ctxt); } }
private JsonNode checkAttachedCollectionSequence(JsonNode node){ JsonNode collectionSequenceNode = node.get(ApiStrings.SequenceWorkflowEntry.Arguments.SEQUENCE); //if entry has attached collection sequence if(collectionSequenceNode!=null && !collectionSequenceNode.isNull()) { //remove additional and replace on entry collectionSequenceNode = removeAdditional(collectionSequenceNode); ((ObjectNode)node).replace(ApiStrings.SequenceWorkflowEntry.Arguments.SEQUENCE,collectionSequenceNode); } return node; }
DtoBase value = new DtoBase(); String type = node.path("type").asText(); module.addDeserializer(DtoBase.class, new DtoDeserializer()); mapper.registerModules(module, new JodaModule()); switch (itemType){ //POLICY, POLICY_TYPE, COLLECTION_SEQUENCE, COLLECTION, CONDITION, FIELD_LABEL, LEXICON, LEXICON_EXPRESSION; case POLICY: node = removeAdditional(node); value = mapper.readValue(mapper.writeValueAsString(node),Policy.class); break; case POLICY_TYPE: node = removeAdditional(node); value = mapper.readValue(mapper.writeValueAsString(node), PolicyType.class); break; case COLLECTION_SEQUENCE: node = removeAdditional(node); value = mapper.readValue(mapper.writeValueAsString(node), CollectionSequence.class); break; case COLLECTION: node = removeAdditional(node); value = mapper.readValue(mapper.writeValueAsString(node), DocumentCollection.class); break; case CONDITION: value = getConditionClass(node); break; case FIELD_LABEL: node = removeAdditional(node); value = mapper.readValue(mapper.writeValueAsString(node), FieldLabel.class); break;
public CorePolicyObjectMapper(){ super(); SimpleModule module = new SimpleModule("EnvironmentObjectMapperModule", new Version(0, 1, 0, "")); // module.addDeserializer(Condition.class, new ConditionDeserializer(this)); module.addSerializer(Document.class, new DocumentSerializer()); module.addDeserializer(Document.class, new DocumentDeserializer()); // module.addDeserializer(PageOfResults.class, new PageOfResultsDeserializer()); module.addDeserializer(EnvironmentSnapshot.class, new EnvironmentSnapshotDeserializer()); module.addDeserializer(Condition.class, new AbstractConditionDeserializer()); module.addDeserializer(DtoBase.class, new DtoDeserializer()); module.addSerializer(DtoBase.class, new DtoSerializer()); module.addSerializer(EnvironmentSnapshot.class, new EnvironmentSnapshotSerializer()); super.registerModule(module); super.registerModule(new JodaModule()); super.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); super.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); super.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true); super.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING,true); //super.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); //this was causing a unit test failure super.disable(SerializationFeature.INDENT_OUTPUT); } }
switch (conType) { case NUMBER: node = removeAdditional(node); NumberCondition numberCondition = mapper.readValue(mapper.writeValueAsString(node),NumberCondition.class); return numberCondition; case NOT: node = removeAdditional(node); NotCondition notCondition = mapper.readValue(mapper.writeValueAsString(node),NotCondition.class); return notCondition; case LEXICON: node = removeAdditional(node); LexiconCondition lexicon = mapper.readValue(mapper.writeValueAsString(node),LexiconCondition.class); return lexicon; case EXISTS: node = removeAdditional(node); ExistsCondition existsCondition = mapper.readValue(mapper.writeValueAsString(node),ExistsCondition.class); return existsCondition; case DATE: node = removeAdditional(node); DateCondition dateCondition = mapper.readValue(mapper.writeValueAsString(node),DateCondition.class); return dateCondition; case BOOLEAN: node = removeAdditional(node); BooleanCondition booleanCondition = mapper.readValue(mapper.writeValueAsString(node),BooleanCondition.class); return booleanCondition; case TEXT: node = removeAdditional(node); TextCondition textCondition = mapper.readValue(mapper.writeValueAsString(node),TextCondition.class); return textCondition;