org.neo4j.graphdb.Node.getRelationships()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(6.6k)|赞(0)|评价(0)|浏览(200)

本文整理了Java中org.neo4j.graphdb.Node.getRelationships()方法的一些代码示例,展示了Node.getRelationships()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Node.getRelationships()方法的具体详情如下:
包路径:org.neo4j.graphdb.Node
类名称:Node
方法名:getRelationships

Node.getRelationships介绍

[英]Returns all the relationships attached to this node. If no relationships are attached to this node, an empty iterable will be returned.
[中]返回附加到此节点的所有关系。如果未将任何关系附加到此节点,则将返回一个空的iterable。

代码示例

代码示例来源:origin: neo4j/neo4j

  1. @Override
  2. protected ResourceIterator<Relationship> createNestedIterator( DirectionAndTypes item )
  3. {
  4. return asResourceIterator( node.getRelationships( item.direction, item.types ).iterator() );
  5. }
  6. };

代码示例来源:origin: neo4j/neo4j

  1. @Override
  2. ResourceIterator<Relationship> doExpand( Path path, BranchState state )
  3. {
  4. return asResourceIterator( path.endNode().getRelationships( direction ).iterator() );
  5. }

代码示例来源:origin: neo4j/neo4j

  1. @Override
  2. protected ResourceIterator<Relationship> createNestedIterator(
  3. Pair<RelationshipType, Direction> entry )
  4. {
  5. RelationshipType type = entry.first();
  6. Direction dir = entry.other();
  7. Iterable<Relationship> relationshipsIterable =
  8. (dir == Direction.BOTH) ? node.getRelationships( type ) : node.getRelationships( type, dir );
  9. return Iterables.asResourceIterable( relationshipsIterable ).iterator();
  10. }
  11. };

代码示例来源:origin: neo4j/neo4j

  1. @Override
  2. ResourceIterator<Relationship> doExpand( Path path, BranchState state )
  3. {
  4. final Node node = path.endNode();
  5. ResourceIterator<Relationship> resourceIterator = asResourceIterator( node.getRelationships().iterator() );
  6. return newResourceIterator( new FilteringIterator<>( resourceIterator, rel ->
  7. {
  8. Exclusion exclude = exclusion.get( rel.getType().name() );
  9. exclude = (exclude == null) ? defaultExclusion : exclude;
  10. return exclude.accept( node, rel );
  11. } ), resourceIterator );
  12. }

代码示例来源:origin: neo4j/neo4j

  1. private static void delete( Node node )
  2. {
  3. for ( Relationship rel : node.getRelationships() )
  4. {
  5. rel.delete();
  6. }
  7. node.delete();
  8. }

代码示例来源:origin: neo4j/neo4j

  1. private Relationship getFistRelationship( Node node )
  2. {
  3. ResourceIterable<Relationship> relationships = (ResourceIterable<Relationship>) node.getRelationships( Direction.OUTGOING );
  4. try ( ResourceIterator<Relationship> iterator = relationships.iterator() )
  5. {
  6. return iterator.next();
  7. }
  8. }
  9. }

代码示例来源:origin: neo4j/neo4j

  1. private void loadNode( GraphDatabaseAPI db, Node node )
  2. {
  3. try ( Transaction ignored = db.beginTx() )
  4. {
  5. Iterables.count( node.getRelationships() );
  6. }
  7. }

代码示例来源:origin: neo4j/neo4j

  1. @Name( GET_CONNECTED_NODES )
  2. @PluginTarget( Node.class )
  3. public Iterable<Node> getAllConnectedNodes( @Source Node start )
  4. {
  5. ArrayList<Node> nodes = new ArrayList<>();
  6. for ( Relationship rel : start.getRelationships() )
  7. {
  8. nodes.add( rel.getOtherNode( start ) );
  9. }
  10. return nodes;
  11. }

代码示例来源:origin: neo4j/neo4j

  1. private Relationship findRelationship( Node startNode, final Node endNode, final RelationshipDataLine relationship )
  2. {
  3. return Iterators.singleOrNull( Iterators.filter(
  4. item -> item.getEndNode().equals( endNode ) &&
  5. item.getProperty( "name" ).equals( relationship.name ),
  6. startNode.getRelationships( withName( relationship.type ) ).iterator() ) );
  7. }

代码示例来源:origin: neo4j/neo4j

  1. @Override
  2. public Iterable<Relationship> expand( Path path, BranchState<Integer> state )
  3. {
  4. state.setState( state.getState() + 1 );
  5. return path.endNode().getRelationships( OUTGOING );
  6. }

代码示例来源:origin: neo4j/neo4j

  1. @PluginTarget( Node.class )
  2. public Iterable<Relationship> getRelationshipsBetween( @Source final Node start,
  3. @Parameter( name = "other" ) final Node end )
  4. {
  5. return new FilteringIterable<>( start.getRelationships(), item -> item.getOtherNode( start ).equals( end ) );
  6. }

代码示例来源:origin: neo4j/neo4j

  1. private void tryOnce( final GraphDatabaseAPI db, final Node node ) throws Throwable
  2. {
  3. Race race = new Race().withRandomStartDelays();
  4. race.addContestants( Runtime.getRuntime().availableProcessors(), () ->
  5. {
  6. try ( Transaction ignored = db.beginTx() )
  7. {
  8. assertEquals( relCount, count( node.getRelationships() ) );
  9. }
  10. } );
  11. race.go();
  12. }

代码示例来源:origin: neo4j/neo4j

  1. @Override
  2. public Iterable<Relationship> expand( Path path, BranchState<Integer> state )
  3. {
  4. assertEquals( path.length(), state.getState().intValue() );
  5. state.setState( state.getState() + 1 );
  6. return path.endNode().getRelationships( Direction.OUTGOING );
  7. }

代码示例来源:origin: neo4j/neo4j

  1. private void assertDegrees( Node node )
  2. {
  3. for ( RelationshipType type : node.getRelationshipTypes() )
  4. {
  5. for ( Direction direction : Direction.values() )
  6. {
  7. long degree = node.getDegree( type, direction );
  8. long actualDegree = count( node.getRelationships( type, direction ) );
  9. assertEquals( actualDegree, degree );
  10. }
  11. }
  12. }

代码示例来源:origin: neo4j/neo4j

  1. @Override
  2. public Iterable<Relationship> expand( Path path, BranchState<Double> state )
  3. {
  4. double newState = state.getState();
  5. if ( path.length() > 0 )
  6. {
  7. newState += (Double) path.lastRelationship().getProperty( "length" );
  8. state.setState( newState );
  9. }
  10. seenBranchStates.put( path.endNode(), newState );
  11. return path.endNode().getRelationships( OUTGOING );
  12. }

代码示例来源:origin: neo4j/neo4j

  1. private Relationship getFirstRelationshipFromRomeoNode()
  2. {
  3. Node romeo = getNode( "Romeo" );
  4. try ( Transaction transaction = romeo.getGraphDatabase().beginTx() )
  5. {
  6. ResourceIterable<Relationship> relationships = (ResourceIterable<Relationship>) romeo.getRelationships();
  7. try ( ResourceIterator<Relationship> iterator = relationships.iterator() )
  8. {
  9. return iterator.next();
  10. }
  11. }
  12. }

代码示例来源:origin: neo4j/neo4j

  1. @Override
  2. public Iterable<Relationship> expand( Path path, BranchState<Integer> state )
  3. {
  4. assertEquals( path.length() / 2, state.getState().intValue() );
  5. if ( path.length() % 2 == 1 )
  6. {
  7. state.setState( state.getState() + 1 );
  8. }
  9. return path.endNode().getRelationships( Direction.OUTGOING );
  10. }

代码示例来源:origin: neo4j/neo4j

  1. @Test
  2. public void createAndClearCacheBeforeCommit()
  3. {
  4. Node node = getGraphDb().createNode();
  5. node.createRelationshipTo( getGraphDb().createNode(), TEST );
  6. assertEquals( 1, Iterables.count( node.getRelationships() ) );
  7. }

代码示例来源:origin: neo4j/neo4j

  1. @Test
  2. public void shouldNotGetTheSameRelationshipMoreThanOnceWhenAskingForTheSameTypeMultipleTimes()
  3. {
  4. // given
  5. Node node = getGraphDb().createNode();
  6. node.createRelationshipTo( getGraphDb().createNode(), withName( "FOO" ) );
  7. // when
  8. long relationships = Iterables.count( node.getRelationships( withName( "FOO" ), withName( "FOO" ) ) );
  9. // then
  10. assertEquals( 1, relationships );
  11. }

代码示例来源:origin: neo4j/neo4j

  1. @Test
  2. public void testNarrowingFilters()
  3. {
  4. Evaluator mustBeConnectedToK = new MustBeConnectedToNodeFilter( getNodeWithName( "k" ) );
  5. Evaluator mustNotHaveMoreThanTwoOutRels =
  6. path -> Evaluation.ofIncludes( Iterables
  7. .count( path.endNode().getRelationships( Direction.OUTGOING ) ) <= 2 );
  8. TraversalDescription description = getGraphDb().traversalDescription().evaluator( mustBeConnectedToK );
  9. expectNodes( description.traverse( node( "a" ) ), "b", "c" );
  10. expectNodes( description.evaluator( mustNotHaveMoreThanTwoOutRels ).traverse( node( "a" ) ), "c" );
  11. }

相关文章