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

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

Introduction

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

Prototype

@Override
public ObjectNode createObjectNode() 

Source Link

Document

Note: return type is co-variant, as basic ObjectCodec abstraction can not refer to concrete node types (as it's part of core package, whereas impls are part of mapper package)

Usage

From source file:org.dswarm.graph.gdm.test.GDMResource4Test.java

@Ignore
@Test//from   w w  w  .  j a v a  2 s . c o m
public void searchGDMRecordFromDBThatWasWrittenAsGDM4() throws IOException {

    LOG.debug("start search GDM records test 4 for GDM resource at {} DB", dbType);

    final String dataModelURI = "http://data.slub-dresden.de/resources/7777";

    writeGDMToDBInternal(dataModelURI, "versioning/csv.gdm.v1.json");

    final String recordClassURI = "http://data.slub-dresden.de/resources/1/schema#RecordType";

    writeGDMToDBInternalWDeprecation(dataModelURI, "versioning/csv.gdm.v2.json", recordClassURI);

    final ObjectMapper objectMapper = Util.getJSONObjectMapper();
    objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
    final ObjectNode requestJson = objectMapper.createObjectNode();

    final String recordURI = "http://data.slub-dresden.de/datamodels/DataModel-574990f5-4785-4020-b86a-9765bb084f16/records/7a7990dd-2e4a-4757-85f2-7de444a0e502";
    final String keyAP = "http://data.slub-dresden.de/resources/1/schema#name";
    final String searchValue = "brumm";

    requestJson.put(DMPStatics.KEY_ATTRIBUTE_PATH_IDENTIFIER, keyAP);
    requestJson.put(DMPStatics.SEARCH_VALUE_IDENTIFIER, searchValue);
    requestJson.put(DMPStatics.DATA_MODEL_URI_IDENTIFIER, dataModelURI);
    requestJson.put(DMPStatics.VERSION_IDENTIFIER, 1);

    final Model actualModel = searchGDMRecords(requestJson, 6);

    Assert.assertEquals(recordURI, actualModel.getResources().iterator().next().getUri());

    // should retrieve the latest version
    requestJson.remove(DMPStatics.VERSION_IDENTIFIER);

    final Model actualModel2 = searchGDMRecords(requestJson, 0);

    Assert.assertNotNull(actualModel2);
    Assert.assertEquals(0, actualModel2.size());

    LOG.debug("finished search GDM records test 4 for GDM resource at {} DB", dbType);
}

From source file:org.dswarm.graph.gdm.test.GDMResource4Test.java

@Test
public void readGDMModelFromDBThatWasWrittenAsGDM() throws IOException {

    LOG.debug("start read GDM model test for GDM resource at {} DB", dbType);

    writeGDMToDBInternal(DATA_MODEL_URI, MABXML_RESOURCE_GSON);

    final ObjectMapper objectMapper = Util.getJSONObjectMapper();
    objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
    final ObjectNode requestJson = objectMapper.createObjectNode();

    requestJson.put(DMPStatics.RECORD_CLASS_URI_IDENTIFIER,
            "http://www.ddb.de/professionell/mabxml/mabxml-1.xsd#datensatzType");
    requestJson.put(DMPStatics.DATA_MODEL_URI_IDENTIFIER, DATA_MODEL_URI);

    final String requestJsonString = objectMapper.writeValueAsString(requestJson);

    // POST the request
    final ClientResponse response = target().path("/get").type(MediaType.APPLICATION_JSON_TYPE)
            .accept(MediaType.APPLICATION_JSON).post(ClientResponse.class, requestJsonString);

    Assert.assertEquals("expected 200", 200, response.getStatus());

    final InputStream actualResult = response.getEntity(InputStream.class);
    final BufferedInputStream bis = new BufferedInputStream(actualResult, 1024);
    final ModelParser modelParser = new ModelParser(bis);
    final org.dswarm.graph.json.Model model = new org.dswarm.graph.json.Model();

    final Observable<Void> parseObservable = modelParser.parse().map(resource1 -> {

        model.addResource(resource1);//from ww  w.j  a va  2s .c  o m

        return null;
    });

    final Iterator<Void> iterator = parseObservable.toBlocking().getIterator();

    Assert.assertTrue(iterator.hasNext());

    while (iterator.hasNext()) {

        iterator.next();
    }

    bis.close();
    actualResult.close();

    LOG.debug("read '{}' statements", model.size());

    // 191 - 39 rdf:type statements = 152
    Assert.assertEquals("the number of statements should be 191", 191, model.size());

    LOG.debug("finished read GDM model test for GDM resource at {} DB", dbType);
}

From source file:org.apache.solr.kelvin.responseanalyzers.LegacyResponseAnalyzer.java

public void decode(Map<String, Object> previousResponses) throws Exception {
    ObjectMapper mapper = new ObjectMapper();
    ArrayNode response = mapper.createArrayNode();

    if (!previousResponses.containsKey(XmlResponseAnalyzer.XML_DOM)) {
        previousResponses.put(XmlDoclistExtractorResponseAnalyzer.DOC_LIST, response); //empty
        return;//from   w w w . j  a  v a2  s .  c  o m
    }

    NodeList nodeList = (NodeList) expr.evaluate((Document) previousResponses.get(XmlResponseAnalyzer.XML_DOM),
            XPathConstants.NODESET);

    for (int i = 0; i < nodeList.getLength(); i++) {
        Node doc = nodeList.item(i);
        ObjectNode oDoc = mapper.createObjectNode();
        Node subel = doc.getFirstChild();
        while (subel != null) {
            String localName = subel.getNodeName();
            if (localName == "field") {
                String fieldName = subel.getAttributes().getNamedItem("name").getNodeValue();
                if (!"infoold".equals(fieldName)) {
                    String value = subel.getTextContent();
                    oDoc.put(fieldName, value);
                }
            } else if (localName == "slug_preferenziale") {
                NodeList slugNodes = subel.getChildNodes();
                oDoc.put("slug_preferenziale", slugNodes.item(slugNodes.getLength() - 1).getAttributes()
                        .getNamedItem("path").getTextContent());
            }

            subel = subel.getNextSibling();
        }
        response.add(oDoc);
    }
    previousResponses.put(XmlDoclistExtractorResponseAnalyzer.DOC_LIST, response);
}

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;//  w  w w  . j  a va2s .co 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:com.marklogic.client.functionaltest.TestPOJOWithStrucQD.java

@Test(expected = ClassCastException.class)
public void testPOJOSearchWithRawJSONStructQD() {
    PojoRepository<Artifact, Long> products = client.newPojoRepository(Artifact.class, Long.class);
    PojoPage<Artifact> p;//from w  ww . j  a  v a 2  s . c o  m
    this.loadSimplePojos(products);

    QueryManager queryMgr = client.newQueryManager();
    JacksonHandle jh = new JacksonHandle();
    ObjectMapper mapper = new ObjectMapper();
    //   constructing JSON representation of Raw JSON Structured Query

    ObjectNode txtNode = mapper.createObjectNode();
    txtNode.putArray("text").add("special");
    ObjectNode termQNode = mapper.createObjectNode();
    termQNode.set("term-query", txtNode);
    ObjectNode queriesArrayNode = mapper.createObjectNode();
    queriesArrayNode.putArray("queries").add(termQNode);

    ObjectNode txtNode2 = mapper.createObjectNode();
    txtNode2.putArray("text").add("Widgets");
    ObjectNode termQNode2 = mapper.createObjectNode();
    termQNode2.set("term-query", txtNode2);
    queriesArrayNode.withArray("queries").add(termQNode2);

    ObjectNode orQueryNode = mapper.createObjectNode();
    orQueryNode.set("and-query", queriesArrayNode);

    ObjectNode queryArrayNode = mapper.createObjectNode();
    queryArrayNode.putArray("queries").add(orQueryNode);
    ObjectNode mainNode = mapper.createObjectNode();
    mainNode.set("query", queryArrayNode);
    jh.set(mainNode);
    PojoQueryDefinition qd = (PojoQueryDefinition) queryMgr.newRawStructuredQueryDefinition(jh);

    JacksonHandle results = new JacksonHandle();
    p = products.search(qd, 1, results);
    products.setPageLength(11);
    assertEquals("total no of pages", 1, p.getTotalPages());
    System.out.println(p.getTotalPages() + results.get().toString());
    long pageNo = 1, count = 0;
    do {
        count = 0;
        p = products.search(qd, pageNo, results);

        while (p.iterator().hasNext()) {
            Artifact a = p.iterator().next();
            validateArtifact(a);
            count++;
            assertTrue("Manufacture name starts with acme", a.getManufacturer().getName().contains("Widgets"));
            assertTrue("Artifact name contains", a.getName().contains("special"));

        }
        assertEquals("Page size", count, p.size());
        pageNo = pageNo + p.getPageSize();

        assertEquals("Page start from search handls vs page methods", results.get().get("start").asLong(),
                p.getStart());
        assertEquals("Format in the search handle", "json",
                results.get().withArray("results").get(1).path("format").asText());
        assertTrue("Uri in search handle contains Artifact",
                results.get().withArray("results").get(1).path("uri").asText().contains("Artifact"));
        System.out.println(results.get().toString());
    } while (!p.isLastPage() && pageNo < p.getTotalSize());
    assertFalse("search handle has metrics", results.get().has("metrics"));
    assertEquals("Total from search handle", 11, results.get().get("total").asInt());
    assertEquals("page number after the loop", 1, p.getPageNumber());
    assertEquals("total no of pages", 1, p.getTotalPages());
}

From source file:com.glaf.activiti.web.rest.ActivitiResource.java

private JsonNode getProcessDefinitionResponse(ProcessDefinitionEntity processDefinition) {
    ObjectMapper mapper = new ObjectMapper();
    ObjectNode pdrJSON = mapper.createObjectNode();
    pdrJSON.put("id", processDefinition.getId());
    pdrJSON.put("name", processDefinition.getName());
    pdrJSON.put("key", processDefinition.getKey());
    pdrJSON.put("version", processDefinition.getVersion());
    pdrJSON.put("deploymentId", processDefinition.getDeploymentId());
    pdrJSON.put("isGraphicNotationDefined", isGraphicNotationDefined(processDefinition));

    return pdrJSON;
}

From source file:org.osiam.resources.helper.AttributesRemovalHelper.java

private <T extends Resource> SCIMSearchResult<T> getJsonResponseWithAdditionalFields(
        SCIMSearchResult<T> scimSearchResult, Map<String, Object> parameterMap) {

    ObjectMapper mapper = new ObjectMapper();

    String[] fieldsToReturn = (String[]) parameterMap.get("attributes");
    ObjectWriter writer = getObjectWriter(mapper, fieldsToReturn);

    try {//  w w w  .  j  a  v a 2  s . co m
        String resourcesString = writer.writeValueAsString(scimSearchResult.getResources());
        JsonNode resourcesNode = mapper.readTree(resourcesString);

        String schemasString = writer.writeValueAsString(scimSearchResult.getSchemas());
        JsonNode schemasNode = mapper.readTree(schemasString);

        ObjectNode rootNode = mapper.createObjectNode();
        rootNode.put("totalResults", scimSearchResult.getTotalResults());
        rootNode.put("itemsPerPage", scimSearchResult.getItemsPerPage());
        rootNode.put("startIndex", scimSearchResult.getStartIndex());
        rootNode.put("schemas", schemasNode);
        rootNode.put("Resources", resourcesNode);

        return mapper.readValue(rootNode.toString(), SCIMSearchResult.class);
    } catch (IOException e) {
        LOGGER.warn("Unable to serialize search result", e);
        throw new OsiamBackendFailureException();
    }
}

From source file:org.osiam.resource_server.resources.helper.AttributesRemovalHelper.java

private <T extends Resource> SCIMSearchResult<T> getJsonResponseWithAdditionalFields(
        SCIMSearchResult<T> scimSearchResult, Map<String, Object> parameterMap) {

    ObjectMapper mapper = new ObjectMapper();

    String[] fieldsToReturn = (String[]) parameterMap.get("attributes");
    ObjectWriter writer = getObjectWriter(mapper, fieldsToReturn);

    try {/*from   ww  w  .ja v a  2  s .  co  m*/
        String resourcesString = writer.writeValueAsString(scimSearchResult.getResources());
        JsonNode resourcesNode = mapper.readTree(resourcesString);

        String schemasString = writer.writeValueAsString(scimSearchResult.getSchemas());
        JsonNode schemasNode = mapper.readTree(schemasString);

        ObjectNode rootNode = mapper.createObjectNode();
        rootNode.put("totalResults", scimSearchResult.getTotalResults());
        rootNode.put("itemsPerPage", scimSearchResult.getItemsPerPage());
        rootNode.put("startIndex", scimSearchResult.getStartIndex());
        rootNode.put("schemas", schemasNode);
        rootNode.put("Resources", resourcesNode);

        return mapper.readValue(rootNode.toString(), SCIMSearchResult.class);
    } catch (IOException e) {
        throw new IllegalArgumentException(e);
    }
}

From source file:org.neotree.ui.fragment.DataExportFragment.java

private boolean exportAsJson(ExportData exportData) {
    if (exportData.getEntries() == null || exportData.getEntries().size() == 0) {
        Log.d(TAG, "Nothing to export for script");
        return false;
    }/*from   w  ww .j  a va2s  . c o m*/

    ObjectMapper mapper = new ObjectMapper();

    ObjectNode root = mapper.createObjectNode();
    ArrayNode jsonSessions = root.putArray("sessions");

    ObjectNode jsonSession = null;
    ArrayNode jsonSessionEntries = null;
    ObjectNode jsonEntry;
    ArrayNode jsonEntryValues;
    String sessionId = null;

    for (SessionEntry entry : exportData.getEntries()) {
        if (sessionId == null || !sessionId.equals(entry.getSessionId())) {
            if (jsonSession != null) {
                jsonSessions.add(jsonSession);
            }
            sessionId = entry.getSessionId();
            jsonSession = mapper.createObjectNode();
            jsonSession.put("sessionId", sessionId);

            ObjectNode jsonScript = jsonSession.putObject("script");
            jsonScript.put("id", exportData.getScript().scriptId);
            jsonScript.put("title", exportData.getScript().title);

            jsonSessionEntries = jsonSession.putArray("entries");
        }

        jsonEntry = mapper.createObjectNode();
        jsonEntry.put("key", entry.getKey());
        jsonEntry.put("type", entry.getDataType());
        jsonEntryValues = jsonEntry.putArray("values");

        jsonSessionEntries.add(jsonEntry);

        DataType dataType = entry.getDataTypeAsObject();
        ObjectNode jsonValue;
        SessionValue value;
        switch (dataType) {
        case BOOLEAN:
        case DATE:
        case DATETIME:
        case STRING:
        case ID:
        case NUMBER:
        case PERIOD:
        case TIME:
            value = entry.getSingleValue();

            jsonValue = mapper.createObjectNode();
            jsonValue.put("label", value.getValueLabel());
            switch (dataType) {
            case BOOLEAN:
                jsonValue.put("value", value.getBooleanValue());
                break;
            case DATE:
            case DATETIME:
            case STRING:
            case ID:
                jsonValue.put("value", value.getStringValue());
                break;
            case NUMBER:
                jsonValue.put("value", value.getDoubleValue());
                break;
            case PERIOD:
            case TIME:
                jsonValue.put("value", value.getValueAsFormattedString(getActivity()));
                break;
            }
            jsonEntryValues.add(jsonValue);
            break;

        case SET_ID:
            if (entry.getValues() != null) {
                for (SessionValue sessionValue : entry.getValues()) {
                    jsonValue = mapper.createObjectNode();
                    jsonValue.put("label", sessionValue.getValueLabel());
                    jsonValue.put("value", sessionValue.getStringValue());
                    jsonEntryValues.add(jsonValue);
                }
            }
            break;

        default:
            break;
        }
    }

    try {
        File exportRootDir = Environment.getExternalStoragePublicDirectory("NeoTree");
        if (!exportRootDir.isDirectory()) {
            if (!exportRootDir.mkdirs()) {
                throw new IOException("Error creating output directory: " + exportRootDir.getAbsolutePath());
            }
        }

        File noMediaFile = new File(exportRootDir, ".nomedia");
        if (!noMediaFile.exists()) {
            if (!noMediaFile.createNewFile()) {
                throw new IOException("Error creating .nomedia file: " + noMediaFile.getAbsolutePath());
            }
        }

        String title = exportData.getScript().title;
        String filename = String.format("%s-%s.json",
                DateTime.now().toString(DateTimeFormat.forPattern("yyyyMMddHHmm")),
                title.replaceAll("[^a-zA-Z0-9]", "_"));
        File exportFile = new File(exportRootDir, filename);

        // Write JSON output
        mapper.writeValue(exportFile, root);

        // Tell the media scanner about the new file so that it is
        // immediately available to the user.
        MediaScannerConnection.scanFile(getActivity(), new String[] { exportFile.toString() }, null,
                (path, uri) -> {
                    Log.d(TAG, String.format("Success exporting data [path=%s, uri=%s]", path, uri));
                });

    } catch (IOException e) {
        Log.e(TAG, "Error exporting Excel file", e);
        Crashlytics.logException(e);
        return false;
    }

    return true;
}