use of org.vertexium.cypher.VertexiumCypherResult in project vertexium by visallo.
the class ExecuteCypherQuery method run.
private int run(String[] args) throws Exception {
Parameters params = new Parameters();
JCommander j = new JCommander(params, args);
if (params.help) {
j.usage();
return -1;
}
Map<String, String> config = ConfigurationUtils.loadConfig(params.getConfigFileNames(), params.configPropertyPrefix);
Graph graph = new GraphFactory().createGraph(config);
Authorizations authorizations = params.getAuthorizations(graph);
VertexiumCypherQueryContext ctx = new CliVertexiumCypherQueryContext(graph, authorizations);
CliVertexiumCypherQueryContext.setLabelPropertyName(params.cypherLabelProperty);
CypherCompilerContext compilerContext = new CypherCompilerContext(ctx.getFunctions());
long startTime = System.currentTimeMillis();
String queryString = params.query.stream().collect(Collectors.joining(" "));
VertexiumCypherQuery query = VertexiumCypherQuery.parse(compilerContext, queryString);
VertexiumCypherResult results = query.execute(ctx);
results.stream().forEach(row -> {
results.getColumnNames().forEach(column -> {
System.out.println(row.getByName(column));
});
});
long endTime = System.currentTimeMillis();
LOGGER.info("total time: %.2fs", ((double) (endTime - startTime) / 1000.0));
return 0;
}
use of org.vertexium.cypher.VertexiumCypherResult in project vertexium by visallo.
the class VertexiumScript method vertexiumCypherResultToString.
private static String vertexiumCypherResultToString(VertexiumCypherResult cypherResult) {
VertexiumScript.getContextProperties().clear();
AtomicInteger vertexIndex = new AtomicInteger(0);
AtomicInteger edgeIndex = new AtomicInteger(0);
VertexiumCypherQueryContext ctx = new CliVertexiumCypherQueryContext(getGraph(), getAuthorizations());
LinkedHashSet<String> columnNames = cypherResult.getColumnNames();
List<List<String>> table = new ArrayList<>();
table.add(new ArrayList<>(columnNames));
table.addAll(cypherResult.stream().map(row -> columnNames.stream().map(columnName -> row.getByName(columnName)).map(o -> {
if (o instanceof Vertex) {
String vertexIndexString = "v" + vertexIndex.get();
LazyVertex lazyVertex = new LazyVertex(((Vertex) o).getId());
VertexiumScript.getContextVertices().put(vertexIndexString, lazyVertex);
vertexIndex.incrementAndGet();
return "@|bold " + vertexIndexString + ":|@ " + ((Vertex) o).getId();
}
if (o instanceof Edge) {
String edgeIndexString = "e" + edgeIndex.get();
LazyEdge lazyEdge = new LazyEdge(((Edge) o).getId());
VertexiumScript.getContextEdges().put(edgeIndexString, lazyEdge);
edgeIndex.incrementAndGet();
return "@|bold " + edgeIndexString + ":|@ " + ((Edge) o).getId();
}
return ctx.getResultWriter().columnValueToString(ctx, o);
}).collect(Collectors.toList())).collect(Collectors.toList()));
return "\n" + ShellTableWriter.tableToString(table);
}
Aggregations