protected ResourceIterator<Path> pathIterator() { return iterableToWrap.iterator(); }
@Override public ResourceIterator<T> iterator() { return new MappingResourceIterator<T, U>( source.iterator() ) { @Override protected T map( U object ) { return ResourceIterableWrapper.this.map( object ); } }; } }
/** * @return this iterable as a {@link Stream} */ default Stream<T> stream() { return iterator().stream(); } }
@Override public Iterator<RECORD> iterator() { closeIterator(); ResourceIterable<RECORD> iterable = scan( store, forward ); return cloned( iterator = iterable.iterator() ); }
@SuppressWarnings( "WhileLoopReplaceableByForEach" ) public static long countNodes( GraphDatabaseService graphdb ) { try ( Transaction ignore = graphdb.beginTx() ) { long count = 0; Iterator<Node> allNodes = graphdb.getAllNodes().iterator(); while ( allNodes.hasNext() ) { allNodes.next(); count++; } return count; } }
private void assertHasNext( ResourceIterable<Relationship> relationships ) { try ( ResourceIterator<Relationship> iterator = relationships.iterator() ) { assertTrue( iterator.hasNext() ); } } }
@Override protected ResourceIterator<Relationship> createNestedIterator( Pair<RelationshipType, Direction> entry ) { RelationshipType type = entry.first(); Direction dir = entry.other(); Iterable<Relationship> relationshipsIterable = (dir == Direction.BOTH) ? node.getRelationships( type ) : node.getRelationships( type, dir ); return Iterables.asResourceIterable( relationshipsIterable ).iterator(); } };
private Relationship getFistRelationship( Node node ) { ResourceIterable<Relationship> relationships = (ResourceIterable<Relationship>) node.getRelationships( Direction.OUTGOING ); try ( ResourceIterator<Relationship> iterator = relationships.iterator() ) { return iterator.next(); } } }
private void deleteFirst( ResourceIterable<Relationship> iterable ) { try ( ResourceIterator<Relationship> iterator = iterable.iterator() ) { iterator.next().delete(); } }
private boolean objectExistsInIterable( Relationship rel, ResourceIterable<Relationship> allRels ) { try ( ResourceIterator<Relationship> resourceIterator = allRels.iterator() ) { while ( resourceIterator.hasNext() ) { Relationship iteratedRel = resourceIterator.next(); { if ( rel.equals( iteratedRel ) ) { return true; } } } return false; } }
private <R extends AbstractBaseRecord> void apply( RecordStore<R> store, ProgressListener progressListener, Predicate<? super R>... filters ) throws FAILURE { ResourceIterable<R> iterable = Scanner.scan( store, true, filters ); try ( ResourceIterator<R> scan = iterable.iterator() ) { while ( scan.hasNext() ) { R record = scan.next(); if ( shouldStop ) { break; } store.accept( this, record ); progressListener.set( record.getId() ); } progressListener.done(); } } }
@Override public boolean test( Path item ) { ResourceIterable<Relationship> relationships = (ResourceIterable<Relationship>) item.endNode() .getRelationships( Direction.OUTGOING ); try ( ResourceIterator<Relationship> iterator = relationships.iterator() ) { while ( iterator.hasNext() ) { Relationship rel = iterator.next(); if ( rel.getEndNode().equals( node ) ) { return true; } } return false; } }
protected Node getNodeWithName( String name ) { ResourceIterable<Node> allNodes = getGraphDb().getAllNodes(); try ( ResourceIterator<Node> nodeIterator = allNodes.iterator() ) { while ( nodeIterator.hasNext() ) { Node node = nodeIterator.next(); { String nodeName = (String) node.getProperty( "name", null ); if ( nodeName != null && nodeName.equals( name ) ) { return node; } } } } return null; }
private Relationship getFirstRelationshipFromRomeoNode() { Node romeo = getNode( "Romeo" ); try ( Transaction transaction = romeo.getGraphDatabase().beginTx() ) { ResourceIterable<Relationship> relationships = (ResourceIterable<Relationship>) romeo.getRelationships(); try ( ResourceIterator<Relationship> iterator = relationships.iterator() ) { return iterator.next(); } } }
private void setWeight( String start, String end, double weight ) { Node startNode = graph.getNode( start ); Node endNode = graph.getNode( end ); ResourceIterable<Relationship> relationships = Iterables.asResourceIterable( startNode.getRelationships() ); try ( ResourceIterator<Relationship> resourceIterator = relationships.iterator() ) { while ( resourceIterator.hasNext() ) { Relationship rel = resourceIterator.next(); if ( rel.getOtherNode( startNode ).equals( endNode ) ) { rel.setProperty( "weight", weight ); return; } } } throw new RuntimeException( "No relationship between nodes " + start + " and " + end ); } }
@Test public void shouldSkipEmptyFiles() throws Exception { // GIVEN File data = data( "" ); // WHEN importTool( "--into", dbRule.getDatabaseDirAbsolutePath(), "--nodes", data.getAbsolutePath() ); // THEN GraphDatabaseService graphDatabaseService = dbRule.getGraphDatabaseAPI(); try ( Transaction tx = graphDatabaseService.beginTx() ) { ResourceIterator<Node> allNodes = graphDatabaseService.getAllNodes().iterator(); assertFalse( "Expected database to be empty", allNodes.hasNext() ); tx.success(); } }
@Test public void shouldAllowMultilineFieldsWhenEnabled() throws Exception { // GIVEN File data = data( ":ID,name", "1,\"This is a line with\nnewlines in\"" ); // WHEN importTool( "--into", dbRule.getDatabaseDirAbsolutePath(), "--nodes", data.getAbsolutePath(), "--multiline-fields", "true" ); // THEN GraphDatabaseService db = dbRule.getGraphDatabaseAPI(); try ( Transaction tx = db.beginTx() ) { ResourceIterator<Node> allNodes = db.getAllNodes().iterator(); Node node = Iterators.single( allNodes ); allNodes.close(); assertEquals( "This is a line with\nnewlines in", node.getProperty( "name" ) ); tx.success(); } }
@Test public void shouldNotTrimStringsByDefault() throws Exception { // GIVEN String name = " This is a line with leading and trailing whitespaces "; File data = data( ":ID,name", "1,\"" + name + "\""); // WHEN importTool( "--into", dbRule.getDatabaseDirAbsolutePath(), "--nodes", data.getAbsolutePath() ); // THEN GraphDatabaseService db = dbRule.getGraphDatabaseAPI(); try ( Transaction tx = db.beginTx() ) { ResourceIterator<Node> allNodes = db.getAllNodes().iterator(); Node node = Iterators.single( allNodes ); allNodes.close(); assertEquals( name, node.getProperty( "name" ) ); tx.success(); } }
@Test public void makeSureNodesAreTraversedInCorrectOrder() { PathExpander expander = new OrderedByTypeExpander().add( firstComment ).add( comment ).add( next ); Iterator<Node> itr = getGraphDb().traversalDescription().depthFirst().expand( expander ).traverse( node( "A1" ) ).nodes().iterator(); assertOrder( itr, "A1", "C1", "C2", "C3", "A2", "C4", "C5", "C6", "A3", "C7", "C8", "C9" ); expander = new OrderedByTypeExpander().add( next ).add( firstComment ).add( comment ); itr = getGraphDb().traversalDescription().depthFirst().expand( expander ).traverse( node( "A1" ) ).nodes().iterator(); assertOrder( itr, "A1", "A2", "A3", "C7", "C8", "C9", "C4", "C5", "C6", "C1", "C2", "C3" ); }
@Test public void evenDifferentDirectionsKeepsOrder() { PathExpander expander = new OrderedByTypeExpander() .add( next, INCOMING ) .add( firstComment ) .add( comment ) .add( next, OUTGOING ); Iterator<Node> itr = getGraphDb().traversalDescription().depthFirst().expand( expander ).traverse( node( "A2" ) ).nodes().iterator(); assertOrder( itr, "A2", "A1", "C1", "C2", "C3", "C4", "C5", "C6", "A3", "C7", "C8", "C9" ); }