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

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

本文整理了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

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

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

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

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

@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();
  }
};

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

@Override
ResourceIterator<Relationship> doExpand( Path path, BranchState state )
{
  final Node node = path.endNode();
  ResourceIterator<Relationship> resourceIterator = asResourceIterator( node.getRelationships().iterator() );
  return newResourceIterator( new FilteringIterator<>( resourceIterator, rel ->
  {
    Exclusion exclude = exclusion.get( rel.getType().name() );
    exclude = (exclude == null) ? defaultExclusion : exclude;
    return exclude.accept( node, rel );
  } ), resourceIterator );
}

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

private static void delete( Node node )
{
  for ( Relationship rel : node.getRelationships() )
  {
    rel.delete();
  }
  node.delete();
}

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

private Relationship getFistRelationship( Node node )
  {
    ResourceIterable<Relationship> relationships = (ResourceIterable<Relationship>) node.getRelationships( Direction.OUTGOING );
    try ( ResourceIterator<Relationship> iterator = relationships.iterator() )
    {
      return iterator.next();
    }
  }
}

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

private void loadNode( GraphDatabaseAPI db, Node node )
{
  try ( Transaction ignored = db.beginTx() )
  {
    Iterables.count( node.getRelationships() );
  }
}

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

@Name( GET_CONNECTED_NODES )
@PluginTarget( Node.class )
public Iterable<Node> getAllConnectedNodes( @Source Node start )
{
  ArrayList<Node> nodes = new ArrayList<>();
  for ( Relationship rel : start.getRelationships() )
  {
    nodes.add( rel.getOtherNode( start ) );
  }
  return nodes;
}

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

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

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

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

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

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

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

private void tryOnce( final GraphDatabaseAPI db, final Node node ) throws Throwable
{
  Race race = new Race().withRandomStartDelays();
  race.addContestants( Runtime.getRuntime().availableProcessors(), () ->
  {
    try ( Transaction ignored = db.beginTx() )
    {
      assertEquals( relCount, count( node.getRelationships() ) );
    }
  } );
  race.go();
}

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

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

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

private void assertDegrees( Node node )
{
  for ( RelationshipType type : node.getRelationshipTypes() )
  {
    for ( Direction direction : Direction.values() )
    {
      long degree = node.getDegree( type, direction );
      long actualDegree = count( node.getRelationships( type, direction ) );
      assertEquals( actualDegree, degree );
    }
  }
}

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

@Override
public Iterable<Relationship> expand( Path path, BranchState<Double> state )
{
  double newState = state.getState();
  if ( path.length() > 0 )
  {
    newState += (Double) path.lastRelationship().getProperty( "length" );
    state.setState( newState );
  }
  seenBranchStates.put( path.endNode(), newState );
  return path.endNode().getRelationships( OUTGOING );
}

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

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();
    }
  }
}

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

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

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

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

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

@Test
public void shouldNotGetTheSameRelationshipMoreThanOnceWhenAskingForTheSameTypeMultipleTimes()
{
  // given
  Node node = getGraphDb().createNode();
  node.createRelationshipTo( getGraphDb().createNode(), withName( "FOO" ) );
  // when
  long relationships = Iterables.count( node.getRelationships( withName( "FOO" ), withName( "FOO" ) ) );
  // then
  assertEquals( 1, relationships );
}

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

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

相关文章