Example usage for com.fasterxml.jackson.databind ObjectMapper convertValue

List of usage examples for com.fasterxml.jackson.databind ObjectMapper convertValue

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind ObjectMapper convertValue.

Prototype

@SuppressWarnings("unchecked")
    public <T> T convertValue(Object fromValue, JavaType toValueType) throws IllegalArgumentException 

Source Link

Usage

From source file:org.flowable.engine.impl.bpmn.behavior.DmnActivityBehavior.java

protected void setVariablesOnExecution(List<Map<String, Object>> executionResult, String decisionKey,
        DelegateExecution execution, ObjectMapper objectMapper) {
    if (executionResult == null || executionResult.isEmpty()) {
        return;/*from w  ww.j  av a 2 s. c  o  m*/
    }

    // multiple rule results
    // put on execution as JSON array; each entry contains output id (key) and output value (value)
    if (executionResult.size() > 1) {
        ArrayNode ruleResultNode = objectMapper.createArrayNode();

        for (Map<String, Object> ruleResult : executionResult) {
            ObjectNode outputResultNode = objectMapper.createObjectNode();

            for (Map.Entry<String, Object> outputResult : ruleResult.entrySet()) {
                outputResultNode.set(outputResult.getKey(),
                        objectMapper.convertValue(outputResult.getValue(), JsonNode.class));
            }

            ruleResultNode.add(outputResultNode);
        }

        execution.setVariable(decisionKey, ruleResultNode);
    } else {
        // single rule result
        // put on execution output id (key) and output value (value)
        Map<String, Object> ruleResult = executionResult.get(0);

        for (Map.Entry<String, Object> outputResult : ruleResult.entrySet()) {
            execution.setVariable(outputResult.getKey(), outputResult.getValue());
        }
    }
}

From source file:uk.ac.cam.cl.dtg.segue.dao.content.ContentMapper.java

/**
 * Map a DBObject into the appropriate Content DTO, without having to know what type it is.
 * /*from w  ww  .j  a  va2  s. c o  m*/
 * It so happens that RestEasy will correctly serialize Content or any of its subtypes when it is provided with an
 * object from this method (without having to do instanceof checks or anything).
 * 
 * @param obj
 *            to the DBObject obj
 * @return A content object or any subclass of Content or Null if the obj param is not provided.
 */
public Content mapDBObjectToContentDO(final DBObject obj) {
    Validate.notNull(obj);

    // Create an ObjectMapper capable of deserializing mongo ObjectIDs
    ObjectMapper contentMapper = MongoJackModule.configure(new ObjectMapper());

    // Find out what type label the JSON object has
    String labelledType = (String) obj.get("type");

    // Lookup the matching POJO class
    Class<? extends Content> contentClass = jsonTypes.get(labelledType);

    if (null == contentClass) {
        // We haven't registered this type. Deserialize into the Content
        // base class.

        return contentMapper.convertValue(obj, Content.class);
    } else {

        // We have a registered POJO class. Deserialize into it.
        return contentMapper.convertValue(obj, contentClass);
    }
}

From source file:com.okta.swagger.codegen.AbstractOktaJavaClientCodegen.java

protected void buildDiscriminationMap(Swagger swagger) {
    swagger.getDefinitions().forEach((name, model) -> {
        ObjectNode discriminatorMapExtention = (ObjectNode) model.getVendorExtensions()
                .get("x-openapi-v3-discriminator");
        if (discriminatorMapExtention != null) {

            String propertyName = discriminatorMapExtention.get("propertyName").asText();
            ObjectNode mapping = (ObjectNode) discriminatorMapExtention.get("mapping");

            ObjectMapper mapper = new ObjectMapper();
            Map<String, String> result = mapper.convertValue(mapping, Map.class);
            result = result.entrySet().stream().collect(Collectors
                    .toMap(e -> e.getValue().substring(e.getValue().lastIndexOf('/') + 1), e -> e.getKey()));
            result.forEach((key, value) -> {
                reverseDiscriminatorMap.put(key, name);
            });/* w  w w  .  j ava2s . c o  m*/
            discriminatorMap.put(name, new Discriminator(name, propertyName, result));
        }
    });
}

From source file:io.anserini.doc.DataModel.java

public String generateIndexingCommand(String collection) {
    Map<String, Object> config = this.collections.get(collection);
    ObjectMapper oMapper = new ObjectMapper();
    StringBuilder builder = new StringBuilder();
    builder.append("nohup sh ");
    builder.append(safeGet(config, "index_command"));
    builder.append(" -collection ").append(safeGet(config, "collection"));
    builder.append(" -generator ").append(safeGet(config, "generator"));
    builder.append(" -threads ").append(safeGet(config, "threads"));
    builder.append(" -input ").append("/path/to/" + collection);
    builder.append(" -index ").append("lucene-index." + safeGet(config, "name") + ".pos+docvectors");
    List indexParams = oMapper.convertValue(safeGet(config, "index_options"), List.class);
    for (Object option : indexParams) {
        builder.append(" ").append(option);
    }/* w ww .  j  a v a2  s.  c  o m*/
    builder.append(String.format(" >& log.%s.pos+docvectors%s &", collection,
            indexParams.contains("-storeRawDocs") ? "+rawdocs" : ""));
    return WordUtils.wrap(builder.toString(), 80, " \\\n", false);
}

From source file:ijfx.service.ui.ImageJInfoService.java

@AngularMethod(sync = true, description = "Return the list of all widgets", inputDescription = "No input")
public JSObject getModuleList() {
    try {/*from w w w.  ja  va 2 s  .com*/
        ObjectMapper mapper = new ObjectMapper();
        logger.fine("Getting module list");
        SimpleModule simpleModule = new SimpleModule("ModuleSerializer");
        // simpleModule.addSerializer(ModuleItem<?>.class,new ModuleItemSerializer());
        simpleModule.addSerializer(ModuleInfo.class, new ModuleSerializer());
        simpleModule.addSerializer(ModuleItem.class, new ModuleItemSerializer());
        mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
        mapper.enable(SerializationFeature.INDENT_OUTPUT);
        mapper.registerModule(simpleModule);

        ArrayNode arrayNode = mapper.createArrayNode();

        moduleService.getModules().forEach(module -> {

            //System.out.println("Adding "+module.getName());
            arrayNode.add(mapper.convertValue(module, JsonNode.class));

        });

        //String json = mapper.writeValueAsString(moduleService.getModules());
        logger.fine("JSON done !");

        return JSONUtils.parseToJSON(appService.getCurrentWebEngine(), arrayNode.toString());
        //return JSONUtils.parseToJSON(appService.getCurrentWebEngine(), json);

    } catch (Exception ex) {
        logger.log(Level.SEVERE, null, ex);
    }
    logger.warning("Returning null");
    return null;
}

From source file:eu.europa.ec.fisheries.uvms.spatial.service.bean.impl.AreaServiceBean.java

@Override
@SneakyThrows/*from w  ww. ja  v a  2 s  .c  om*/
@Interceptors(ValidationInterceptor.class)
public List<Map<String, Object>> getAreasByPoint(@NotNull Double latitude, @NotNull Double longitude,
        @NotNull Integer crs, @NotNull String userName, @NotNull AreaType areaType) throws ServiceException {

    AreaLocationTypesEntity areaLocationTypesEntity = repository
            .findAreaLocationTypeByTypeName(areaType.value().toUpperCase());

    Point point = (Point) GeometryUtils.toGeographic(latitude, longitude, crs);

    // FIXME try using ethod of repo remove DAOFactory stuff
    List byIntersect = DAOFactory.getAbstractSpatialDao(em, areaLocationTypesEntity.getTypeName())
            .findByIntersect(point);

    ObjectMapper objectMapper = new ObjectMapper();
    List<Map<String, Object>> objectAsMap = new ArrayList<>();

    for (Object o : byIntersect) {
        objectAsMap.add(objectMapper.convertValue(o, Map.class));
    }

    return objectAsMap;
}

From source file:eu.trentorise.game.repo.GamePersistence.java

public Game toGame() {
    Game game = new Game();
    game.setId(id);//  w  ww. jav  a 2s. c  o  m
    game.setName(name);
    game.setOwner(owner);
    game.setDomain(domain);
    game.setActions(actions);
    game.setRules(rules);
    Set<GameTask> t = new HashSet<GameTask>();
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);
    mapper.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true);
    for (GenericObjectPersistence obj : tasks) {
        // fix: Use @JsonDeserialize to maintain compatibility with
        // databases previous of version 2.0.0 in which
        // classificationTask was a concrete class representing general
        // classifications
        if (obj.getType().equals(ClassificationTask.class.getCanonicalName())) {
            obj.setType(GeneralClassificationTask.class.getCanonicalName());
        }
        try {
            t.add(mapper.convertValue(obj.getObj(), (Class<? extends GameTask>) Thread.currentThread()
                    .getContextClassLoader().loadClass(obj.getType())));
        } catch (Exception e) {
            LogHub.error(id, logger, "Problem to load class {}", obj.getType(), e);
        }
    }
    game.setTasks(t);

    Set<GameConcept> gc = new HashSet<GameConcept>();
    for (GenericObjectPersistence obj : concepts) {
        try {
            gc.add(mapper.convertValue(obj.getObj(), (Class<? extends GameConcept>) Thread.currentThread()
                    .getContextClassLoader().loadClass(obj.getType())));
        } catch (Exception e) {
            logger.error("Problem to load class {}", obj.getType());
        }
    }
    game.setConcepts(gc);

    if (levels != null) {
        levels.stream().forEach(level -> game.getLevels().add(level));
    }

    game.setExpiration(expiration);
    game.setTerminated(terminated);
    return game;
}

From source file:com.yahoo.elide.parsers.state.RelationshipTerminalState.java

@Override
public Supplier<Pair<Integer, JsonNode>> handleGet(StateContext state) {
    JsonApiDocument doc = new JsonApiDocument();
    RequestScope requestScope = state.getRequestScope();
    ObjectMapper mapper = requestScope.getMapper().getObjectMapper();
    Optional<MultivaluedMap<String, String>> queryParams = requestScope.getQueryParams();

    Map<String, Relationship> relationships = record.toResource().getRelationships();
    Relationship relationship = null;//from  w ww . j a  v  a  2 s  . c  o m
    if (relationships != null) {
        relationship = relationships.get(relationshipName);
    }

    // Handle valid relationship
    if (relationship != null) {

        // Set data
        Data<Resource> data = relationship.getData();
        doc.setData(data);

        // Run include processor
        DocumentProcessor includedProcessor = new IncludedProcessor();
        includedProcessor.execute(doc, record, queryParams);

        return () -> Pair.of(HttpStatus.SC_OK, mapper.convertValue(doc, JsonNode.class));
    }

    // Handle no data for relationship
    if (relationshipType.isToMany()) {
        doc.setData(new Data<>(new ArrayList<>()));
    } else if (relationshipType.isToOne()) {
        doc.setData(new Data<>((Resource) null));
    } else {
        throw new IllegalStateException(
                "Failed to GET a relationship; relationship is neither toMany nor toOne");
    }
    return () -> Pair.of(HttpStatus.SC_OK, mapper.convertValue(doc, JsonNode.class));
}

From source file:com.thinkbiganalytics.integration.IntegrationTestBase.java

protected ServiceLevelAssessment[] getServiceLevelAssessments(String filter) {
    LOG.info(String.format("Getting up to 50 SLA Assessments for filter %s", filter));

    Response response = given(ServiceLevelAssessmentsController.BASE).urlEncodingEnabled(false) //url encoding enabled false to avoid replacing percent symbols in url query part
            .when().get("?filter=" + filter + "&limit=50&sort=-createdTime&start=0");

    response.then().statusCode(HTTP_OK);

    SearchResult result = response.as(SearchResultImpl.class);
    final ObjectMapper mapper = new ObjectMapper();
    return result.getData().stream().map(o -> mapper.convertValue(o, ServiceLevelAssessment.class))
            .toArray(ServiceLevelAssessment[]::new);
}

From source file:com.hortonworks.streamline.streams.catalog.topology.component.TopologyComponentFactory.java

private Provider<StreamlineProcessor> createRulesProcessorProvider(final RuleExtractor ruleExtractor) {
    return new Provider<StreamlineProcessor>() {
        @Override/*from  ww  w  . jav a 2  s.  c o m*/
        public StreamlineProcessor create(TopologyComponent component) {
            RulesProcessor processor = new RulesProcessor();
            ObjectMapper objectMapper = new ObjectMapper();

            Set<Stream> outputStreams = createOutputStreams((TopologyOutputComponent) component);
            processor.addOutputStreams(outputStreams);

            boolean processAll = component.getConfig().getBoolean(RulesProcessor.CONFIG_PROCESS_ALL, true);
            processor.setProcessAll(processAll);

            Object ruleList = component.getConfig().getAny(RulesProcessor.CONFIG_KEY_RULES);
            List<Long> ruleIds = objectMapper.convertValue(ruleList, new TypeReference<List<Long>>() {
            });
            try {
                List<Rule> rules = new ArrayList<>();
                for (Long ruleId : ruleIds) {
                    rules.add(
                            ruleExtractor.getRule(component.getTopologyId(), ruleId, component.getVersionId()));
                }
                processor.setRules(rules);
            } catch (Exception ex) {
                throw new RuntimeException(ex);
            }
            return processor;
        }
    };
}