private MavenArtifactDescriptor find(Coordinates coordinates, ScannerContext scannerContext) { String id = MavenArtifactHelper.getId(coordinates); Map<String, Object> params = new HashMap<>(); params.put("fqn", id); Query.Result<CompositeRowObject> result = scannerContext.getStore().executeQuery("MATCH (a:Maven:Artifact:File) WHERE a.fqn={fqn} RETURN a", params); return result.hasResult() ? result.getSingleResult().get("a", MavenArtifactDescriptor.class) : null; }
Result<CompositeRowObject> queryResult = store.executeQuery(((CypherExecutable) executable).getStatement(), queryParameters);
protected <T extends ExecutableRule<?>> Result<T> execute(String cypher, T executableRule, Map<String, Object> parameters, Severity severity, AnalyzerContext context) throws RuleException { List<Map<String, Object>> rows = new ArrayList<>(); context.getLogger().debug("Executing query '" + cypher + "' with parameters [" + parameters + "]"); List<String> columnNames = null; try (Query.Result<Query.Result.CompositeRowObject> compositeRowObjects = context.getStore().executeQuery(cypher, parameters)) { for (Query.Result.CompositeRowObject rowObject : compositeRowObjects) { if (columnNames == null) { columnNames = new ArrayList<>(rowObject.getColumns()); } Map<String, Object> row = new LinkedHashMap<>(); for (String columnName : columnNames) { row.put(columnName, rowObject.get(columnName, Object.class)); } rows.add(row); } } catch (Exception e) { throw new RuleException("Cannot execute query for rule '" + executableRule + "'.", e); } Status status = getStatus(executableRule, columnNames, rows, context); return Result.<T>builder().rule(executableRule).status(status).severity(severity).columnNames(columnNames).rows(rows).build(); }