static public JacksonHandle JsonNodeToHandle(JsonNode value) { return (value == null) ? null : new JacksonHandle(value); } static public Stream<JacksonHandle> JsonNodeToHandle(Stream<? extends JsonNode> values) {
@Override public <C> ContentHandle<C> newHandle(Class<C> type) { @SuppressWarnings("unchecked") ContentHandle<C> handle = isHandled(type) ? (ContentHandle<C>) new JacksonHandle() : null; return handle; } };
@Override public Boolean executeAsk(SPARQLQueryDefinition qdef) { JsonNode result = executeQueryImpl(qdef, new JacksonHandle(), null, false).get(); return result.get("boolean").asBoolean(); }
@Override public Boolean executeAsk(SPARQLQueryDefinition qdef, Transaction tx) { JsonNode result = executeQueryImpl(qdef, new JacksonHandle(), tx, false).get(); return result.get("boolean").asBoolean(); }
private JacksonHandle generatePermissions(GraphPermissions permissions) { ObjectMapper mapper = new ObjectMapper(); ObjectNode payload = mapper.createObjectNode(); ArrayNode permissionsNode = mapper.createArrayNode(); payload.set("permissions", permissionsNode); for ( Map.Entry<String,Set<Capability>> entry : permissions.entrySet() ) { ObjectNode permissionNode = mapper.createObjectNode(); permissionNode.put("role-name", entry.getKey()); ArrayNode capabilitiesNode = mapper.createArrayNode(); for ( Capability capability : entry.getValue() ) { capabilitiesNode.add(capability.toString().toLowerCase()); } permissionNode.set("capabilities", capabilitiesNode); permissionsNode.add(permissionNode); } return new JacksonHandle(payload); }
@Override public void write(List<? extends ObjectNode> items) throws Exception { JSONDocumentManager jsonDocumentManager = databaseClient.newJSONDocumentManager(); items.forEach(item -> { jsonDocumentManager.write(uriGenerator.generate(), new JacksonHandle(item)); }); } }
@Override public GraphPermissions getPermissions(String uri, Transaction transaction) { JsonNode json = services.getPermissions(requestLogger, uri, new JacksonHandle(), transaction).get(); GraphPermissions perms = new GraphPermissionsImpl(); for ( JsonNode permission : json.path("permissions") ) { String role = permission.path("role-name").asText(); Set<Capability> capabilities = new HashSet<>(); for ( JsonNode capability : permission.path("capabilities") ) { String value = capability.asText(); if ( value != null ) { capabilities.add(Capability.valueOf(value.toUpperCase())); } } perms.put(role, capabilities); } return perms; }
String generateOptions(List<JsonNode> entities) { try { ObjectMapper objectMapper = new ObjectMapper(); JsonNode node = objectMapper.valueToTree(entities); ResourceServices.ServiceResultIterator resultItr = this.getServices().post(params, new JacksonHandle(node)); if (resultItr == null || !resultItr.hasNext()) { throw new IOException("Unable to generate query options"); } ResourceServices.ServiceResult res = resultItr.next(); return res.getContent(new StringHandle()).get(); } catch (Exception e) { e.printStackTrace(); } return "{}"; } }
public String getIndexes(List<JsonNode> entities) { try { ObjectMapper objectMapper = new ObjectMapper(); JsonNode node = objectMapper.valueToTree(entities); ResourceServices.ServiceResultIterator resultItr = this.getServices().post(params, new JacksonHandle(node)); if (resultItr == null || !resultItr.hasNext()) { throw new IOException("Unable to generate database indexes"); } ResourceServices.ServiceResult res = resultItr.next(); return res.getContent(new StringHandle()).get(); } catch (Exception e) { e.printStackTrace(); } return "{}"; } }
public String piiGenerate(List<JsonNode> entities) { ObjectMapper objectMapper = new ObjectMapper(); JsonNode node = objectMapper.valueToTree(entities); ResourceServices.ServiceResultIterator resultItr = this.getServices().post(params, new JacksonHandle(node)); if (resultItr == null || !resultItr.hasNext()) { throw new EntityServicesGenerationException("Unable to generate pii config"); } ResourceServices.ServiceResult res = resultItr.next(); return res.getContent(new StringHandle()).get(); }
@Test public void testSPARQLWithLimit() throws Exception { SPARQLQueryDefinition qdef1 = smgr.newQueryDefinition("select ?s ?p ?o { ?s ?p ?o } limit 1"); qdef1.setIncludeDefaultRulesets(false); qdef1.setCollections(graphUri); JsonNode jsonResults = smgr.executeSelect(qdef1, new JacksonHandle()).get(); int numResults = jsonResults.path("results").path("bindings").size(); // because we said 'limit 1' we should only get one result assertEquals(1, numResults); JsonNode firstResult = jsonResults.path("results").path("bindings").path(0); assertEquals(mapper.readTree(expectedFirstResult), firstResult); }
@Test public void testExecuteSelectQueryNullQDEF() throws KeyManagementException, NoSuchAlgorithmException, IOException, SAXException, ParserConfigurationException { System.out.println("In SPARQL Query Manager Test testExecuteSelectQueryNullQDEF method"); SPARQLQueryManager sparqlQmgr = readclient.newSPARQLQueryManager(); String expectedException = "IllegalArgumentException"; String exception = ""; try { sparqlQmgr.executeSelect(null, new JacksonHandle()).get(); } catch (Exception e) { exception = e.toString(); } System.out.println("Exception thrown from testExecuteSelectQueryNullQDEF is \n" + exception); assertTrue(" Test testExecuteSelectQueryNullQDEF method exception is not thrown", exception.contains(expectedException)); }
@Override public JsonNode validateAll() { ResourceServices.ServiceResultIterator resultItr = this.getServices().get(new RequestParameters()); if (resultItr == null || ! resultItr.hasNext()) { return null; } ResourceServices.ServiceResult res = resultItr.next(); return res.getContent(new JacksonHandle()).get(); }
@Test public void testWrite_rdfjson_TripleReadHandle() throws Exception { File file = new File(datasource + "relative6.json"); FileHandle filehandle = new FileHandle(); filehandle.set(file); gmWriter.write("htp://test.sem.graph/rdfjson", filehandle.withMimetype("application/rdf+json")); TriplesReadHandle handle1 = gmWriter.read("htp://test.sem.graph/rdfjson", new JacksonHandle()); assertTrue("Did not insert document or inserted empty doc", handle1.toString().contains("http://purl.org/dc/elements/1.1/title")); }
@Test public void testWrite_rdfjson_JacksonHandle() throws Exception { File file = new File(datasource + "relative6.json"); FileHandle filehandle = new FileHandle(); filehandle.set(file); gmWriter.write("htp://test.sem.graph/rdfjson", filehandle.withMimetype("application/rdf+json")); JacksonHandle handle1 = gmWriter.read("htp://test.sem.graph/rdfjson", new JacksonHandle()); JsonNode readFile = handle1.get(); assertTrue("Did not insert document or inserted empty doc", readFile.toString().contains("http://purl.org/dc/elements/1.1/title")); }
private ArrayNode executeAndExtractBindings(SPARQLQueryDefinition qdef) { JacksonHandle handle = smgr.executeSelect(qdef, new JacksonHandle()); JsonNode results = handle.get(); ArrayNode bindings = (ArrayNode) results.findPath("results").findPath( "bindings"); return bindings; }
@Test public void testPOJOValueQueryWithCriteria() { PojoRepository<Artifact, Long> products = client.newPojoRepository(Artifact.class, Long.class); PojoPage<Artifact> p; this.loadSimplePojos(products); String[] searchOptions = { "case-sensitive", "wildcarded", "min-occurs=1" }; PojoQueryBuilder qb = products.getQueryBuilder(); String[] searchNames = { "Acme spe* *", "Widgets spe* *" }; PojoQueryDefinition qd = qb.value("name", searchOptions, 100.0, searchNames).withCriteria("Cogs 101"); JacksonHandle jh = new JacksonHandle(); products.setPageLength(5); p = products.search(qd, 1, jh); JsonNode nodePos = jh.get(); // Return 1 node - constraint2.xml assertEquals("Number of results returned incorrect in response", "1", nodePos.path("total").asText()); assertEquals("Result returned incorrect in response", "com.marklogic.client.functionaltest.Artifact/101.json", nodePos.path("results").get(0).path("uri").asText()); }
@Override public JsonNode validate(String entity, String flow, String plugin, String type, String content) { RequestParameters params = new RequestParameters(); params.add("entity", entity); params.add("flow", flow); params.add("plugin", plugin); params.add("type", type); StringHandle handle = new StringHandle(content); handle.setFormat(Format.TEXT); ResourceServices.ServiceResultIterator resultItr = this.getServices().post(params, handle ); if (resultItr == null || ! resultItr.hasNext()) { return null; } ResourceServices.ServiceResult res = resultItr.next(); return res.getContent(new JacksonHandle()).get(); } }
@Test public void test105Searches() throws IOException { QueryManager queryMgr = Common.client.newQueryManager(); StructuredQueryBuilder qb = queryMgr.newStructuredQueryBuilder(); for (int i=0;i<105;i++) { for (QueryDefinition t : new QueryDefinition[] { qb.term("leaf3"), qb.build(qb.value(qb.element("leaf"), "leaf3")) }) { JacksonHandle results = queryMgr.search(t, new JacksonHandle()); assertNotNull(results); JsonNode jsonResults =results.get(); @SuppressWarnings("unused") String resultString = results.getMapper().writeValueAsString(jsonResults); // ignore. } } }
@Test public void testExplain() throws IOException { RowManager rowMgr = Common.client.newRowManager(); PlanBuilder p = rowMgr.newPlanBuilder(); PlanBuilder.ExportablePlan builtPlan = p.fromLiterals(litRows); JsonNode jsonRoot = rowMgr.explain(builtPlan, new JacksonHandle()).get(); assertNotNull(jsonRoot); jsonRoot = rowMgr.explainAs(builtPlan, JsonNode.class); assertNotNull(jsonRoot); Document xmlRoot = rowMgr.explain(builtPlan, new DOMHandle()).get(); assertNotNull(xmlRoot); xmlRoot = rowMgr.explainAs(builtPlan, Document.class); assertNotNull(xmlRoot); String stringRoot = rowMgr.explain(builtPlan, new StringHandle()).get(); assertNotNull(new ObjectMapper().readTree(stringRoot)); } private DOMHandle initNamespaces(DOMHandle handle) {