private boolean contains(Atom atom, Transaction transaction) { String query = containsAtomIntoCypherQuery(atom, true); if (LOGGER.isDebugEnabled()) { LOGGER.debug(query); } ResourceIterator<Node> result = this.cypherEngine.execute(query).columnAs("atom"); boolean res = result.hasNext(); result.close(); return res; }
private <T> List<T> toList( ExecutionResult result, String column ) { List<T> results = new ArrayList<T>(); IteratorUtil.addToCollection( result.<T>columnAs( column ), results ); return results; }
public static Node getReferenceNode(GraphDatabaseService db, String name) { if (engine == null || db != dbRef) { engine = new ExecutionEngine(db); ReferenceNodes.dbRef = db; } ExecutionResult result = engine.execute("MERGE (ref:ReferenceNode {name:{name}}) RETURN ref", map("name", name)); return IteratorUtil.single(result.<Node>columnAs("ref")); } }
public Node getOrCreate(String nodeId) { Node result = null; try(final Transaction tx = ((GraphDatabaseAPI) neo4jGraph).tx().unforced().begin()) { try { String queryString = "MERGE (n:Node {nodeId: {nodeId}}) RETURN n"; Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("nodeId", nodeId); ResourceIterator<Node> resultIterator = engine.execute(queryString, parameters).columnAs("n"); result = resultIterator.next(); tx.success(); } catch (Exception e) { tx.failure(); throw new BenchmarkingException("unable to get or create node " + nodeId, e); } } return result; }
@Test public void exampleWithParameterForNodeObject() throws Exception { // START SNIPPET: exampleWithParameterForNodeObject Map<String, Object> params = new HashMap<String, Object>(); params.put( "node", andreasNode ); String query = "START n=node({node}) RETURN n.name"; ExecutionResult result = engine.execute( query, params ); // END SNIPPET: exampleWithParameterForNodeObject assertThat( result.columns(), hasItem( "n.name" ) ); Iterator<Object> n_column = result.columnAs( "n.name" ); assertEquals( "Andreas", n_column.next() ); }
@Test public void exampleWithParameterForSkipAndLimit() throws Exception { // START SNIPPET: exampleWithParameterForSkipLimit Map<String, Object> params = new HashMap<String, Object>(); params.put( "s", 1 ); params.put( "l", 1 ); String query = "MATCH (n) RETURN n.name SKIP {s} LIMIT {l}"; ExecutionResult result = engine.execute( query, params ); // END SNIPPET: exampleWithParameterForSkipLimit assertThat( result.columns(), hasItem( "n.name" ) ); Iterator<Object> n_column = result.columnAs( "n.name" ); assertEquals( "Andreas", n_column.next() ); dumpToFile( "exampleWithParameterForSkipLimit", query, params ); }
@Test public void exampleWithParameterForNodeId() throws Exception { // START SNIPPET: exampleWithParameterForNodeId Map<String, Object> params = new HashMap<String, Object>(); params.put( "id", 0 ); String query = "START n=node({id}) RETURN n.name"; ExecutionResult result = engine.execute( query, params ); // END SNIPPET: exampleWithParameterForNodeId assertThat( result.columns(), hasItem( "n.name" ) ); Iterator<Object> n_column = result.columnAs( "n.name" ); assertEquals( "Michaela", n_column.next() ); dumpToFile( "exampleWithParameterForNodeId", query, params ); }
@Test public void exampleWithParameterRegularExpression() throws Exception { // START SNIPPET: exampleWithParameterRegularExpression Map<String, Object> params = new HashMap<String, Object>(); params.put( "regex", ".*h.*" ); String query = "MATCH (n) WHERE n.name =~ {regex} RETURN n.name"; ExecutionResult result = engine.execute( query, params ); // END SNIPPET: exampleWithParameterRegularExpression dumpToFile( "exampleWithParameterRegularExpression", query, params ); assertThat( result.columns(), hasItem( "n.name" ) ); Iterator<Object> n_column = result.columnAs( "n.name" ); assertEquals( "Michaela", n_column.next() ); assertEquals( "Johan", n_column.next() ); }
@Test public void shouldBeAbleToEmitJavaIterables() throws Exception { makeFriends( michaelaNode, andreasNode ); makeFriends( michaelaNode, johanNode ); ExecutionEngine engine = new ExecutionEngine( db ); ExecutionResult result = engine.execute( "START n=node(0) MATCH n-->friend RETURN collect(friend)" ); Iterable<Node> friends = (Iterable<Node>) result.columnAs( "collect(friend)" ).next(); assertThat( friends, hasItems( andreasNode, johanNode ) ); assertThat( friends, instanceOf( Iterable.class ) ); }
@Test public void exampleQuery() throws Exception { // START SNIPPET: JavaQuery ExecutionEngine engine = new ExecutionEngine( db ); ExecutionResult result = engine.execute( "START n=node(0) WHERE 1=1 RETURN n" ); assertThat( result.columns(), hasItem( "n" ) ); Iterator<Node> n_column = result.columnAs( "n" ); assertThat( asIterable( n_column ), hasItem( db.getNodeById( 0 ) ) ); // END SNIPPET: JavaQuery }
Iterator<Node> n_column = result.columnAs( "n" ); for ( Node node : IteratorUtil.asIterable( n_column ) )