本文整理了Java中org.neo4j.graphdb.Path.lastRelationship()
方法的一些代码示例,展示了Path.lastRelationship()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Path.lastRelationship()
方法的具体详情如下:
包路径:org.neo4j.graphdb.Path
类名称:Path
方法名:lastRelationship
[英]Returns the last Relationship in this path.
[中]返回此路径中的最后一个关系。
代码示例来源:origin: neo4j/neo4j
@Override
public Relationship lastRelationship()
{
return path.lastRelationship();
}
代码示例来源:origin: neo4j/neo4j
@Override
protected Relationship convert( Path path )
{
return path.lastRelationship();
}
};
代码示例来源:origin: neo4j/neo4j
@Override
boolean exclude( Path path )
{
return !predicate.test( path.lastRelationship() );
}
}
代码示例来源:origin: neo4j/neo4j
@Override
long getId( Path source )
{
return source.lastRelationship().getId();
}
代码示例来源:origin: neo4j/neo4j
@Override
boolean idEquals( Path source, long idToCompare )
{
Relationship relationship = source.lastRelationship();
return relationship != null && relationship.getId() == idToCompare;
}
代码示例来源:origin: neo4j/neo4j
@Override
public RelationshipValue lastRelationship()
{
return ValueUtils.fromRelationshipProxy( path.lastRelationship() );
}
代码示例来源:origin: neo4j/neo4j
private Direction getDirectionOfLastRelationship( Path path )
{
assert path.length() > 0;
Direction direction = Direction.INCOMING;
if ( path.endNode().equals( path.lastRelationship().getEndNode() ) )
{
direction = Direction.OUTGOING;
}
return direction;
}
};
代码示例来源:origin: neo4j/neo4j
@Override
public Evaluation evaluate( Path path, BranchState<Double> state )
{
double nextState = state.getState();
if ( path.length() > 0 )
{
nextState += costEvaluator.getCost( path.lastRelationship(), OUTGOING );
state.setState( nextState );
}
return Evaluation.EXCLUDE_AND_CONTINUE;
}
}
代码示例来源:origin: neo4j/neo4j
@Override
public Evaluation evaluate( Path path, BranchState<Double> state )
{
double nextState = state.getState();
if ( path.length() > 0 )
{
nextState += costEvaluator.getCost( path.lastRelationship(), OUTGOING );
state.setState( nextState );
}
if ( path.endNode().equals( endNode ) )
{
shortestSoFar.setValue( Math.min( shortestSoFar.doubleValue(), nextState ) );
return Evaluation.INCLUDE_AND_PRUNE;
}
return Evaluation.EXCLUDE_AND_CONTINUE;
}
}
代码示例来源:origin: neo4j/neo4j
public static Path path( Node node, Link... links )
{
List<Node> nodes = new ArrayList<>( links.length + 1 );
List<Relationship> relationships = new ArrayList<>( links.length );
List<PropertyContainer> mixed = new ArrayList<>( links.length * 2 + 1 );
nodes.add( node );
mixed.add( node );
Path path = mock( Path.class );
when( path.startNode() ).thenReturn( node );
Relationship last = null;
for ( Link link : links )
{
last = link.relationship;
relationships.add( last );
mixed.add( last );
node = link.checkNode( node );
nodes.add( node );
mixed.add( node );
}
when( path.endNode() ).thenReturn( node );
when( path.iterator() ).thenAnswer( withIteratorOf( mixed ) );
when( path.nodes() ).thenReturn( nodes );
when( path.relationships() ).thenReturn( relationships );
when( path.lastRelationship() ).thenReturn( last );
when( path.length() ).thenReturn( links.length );
when( path.reverseNodes() ).thenReturn( reverse( nodes ) );
when( path.reverseRelationships() ).thenReturn( reverse( relationships ) );
return path;
}
代码示例来源:origin: neo4j/neo4j
@Override
public Iterable<Relationship> expand( Path path, BranchState<Integer> state )
{
if ( path.length() > 0 )
{
int newState = state.getState() + ((Number)path.lastRelationship().getProperty( "weight" )).intValue();
state.setState( newState );
encounteredState.put( path.endNode(), newState );
}
return path.endNode().getRelationships();
}
代码示例来源:origin: neo4j/neo4j
@Test
public void shouldHandleSingleRelationshipPath()
{
// Given
Node start, end;
Relationship relationship;
try ( Transaction tx = db.beginTx() )
{
start = db.createNode();
end = db.createNode();
relationship = start.createRelationshipTo( end, RelationshipType.withName( "R" ) );
tx.success();
}
// When
Path mapped = mapper.mapPath( path( asNodeValues( start, end ), asRelationshipsValues( relationship ) ) );
// Then
try ( Transaction ignore = db.beginTx() )
{
assertThat( mapped.length(), equalTo( 1 ) );
assertThat( mapped.startNode(), equalTo( start ) );
assertThat( mapped.endNode(), equalTo( end ) );
assertThat( Iterables.asList( mapped.relationships() ), equalTo( singletonList( relationship ) ) );
assertThat( Iterables.asList( mapped.reverseRelationships() ), equalTo( singletonList( relationship ) ) );
assertThat( Iterables.asList( mapped.nodes() ), equalTo( Arrays.asList( start, end ) ) );
assertThat( Iterables.asList( mapped.reverseNodes() ), equalTo( Arrays.asList( end, start ) ) );
assertThat( mapped.lastRelationship(), equalTo( relationship ) );
assertThat( Iterators.asList( mapped.iterator() ), equalTo( Arrays.asList( start, relationship, end ) ) );
}
}
代码示例来源:origin: neo4j/neo4j
@Test
public void shouldHandleSingleNodePath()
{
// Given
Node node;
try ( Transaction tx = db.beginTx() )
{
node = db.createNode();
tx.success();
}
// When
Path mapped = mapper.mapPath( path( asNodeValues( node ), asRelationshipsValues() ) );
// Then
try ( Transaction ignore = db.beginTx() )
{
assertThat( mapped.length(), equalTo( 0 ) );
assertThat( mapped.startNode(), equalTo( node ) );
assertThat( mapped.endNode(), equalTo( node ) );
assertThat( Iterables.asList( mapped.relationships() ), hasSize( 0 ) );
assertThat( Iterables.asList( mapped.reverseRelationships() ), hasSize( 0 ) );
assertThat( Iterables.asList( mapped.nodes() ), equalTo( singletonList( node ) ) );
assertThat( Iterables.asList( mapped.reverseNodes() ), equalTo( singletonList( node ) ) );
assertThat( mapped.lastRelationship(), nullValue() );
assertThat( Iterators.asList( mapped.iterator() ), equalTo( singletonList( node ) ) );
}
}
代码示例来源: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
assertThat( Iterables.asList( mapped.nodes() ), equalTo( Arrays.asList( a, b, c, d, e ) ) );
assertThat( Iterables.asList( mapped.reverseNodes() ), equalTo( Arrays.asList( e, d, c, b, a ) ) );
assertThat( mapped.lastRelationship(), equalTo( r4 ) );
assertThat( Iterators.asList( mapped.iterator() ),
equalTo( Arrays.asList( a, r1, b, r2, c, r3, d, r4, e ) ) );
代码示例来源:origin: neo4j/neo4j
@Test
public void testSmallestPossibleInit()
{
Traverser traversal = getGraphDb().traversalDescription().traverse( node( "1" ) );
int count = 0;
try ( Transaction transaction = beginTx() )
{
for ( Path position : traversal )
{
count++;
assertNotNull( position );
assertNotNull( position.endNode() );
if ( position.length() > 0 )
{
assertNotNull( position.lastRelationship() );
}
}
assertNotEquals( "empty traversal", 0, count );
transaction.success();
}
}
代码示例来源:origin: neo4j/neo4j
.evaluator( path ->
Relationship rel = path.lastRelationship();
boolean relIsOfType = rel != null && rel.isType( type );
boolean prune =
代码示例来源:origin: neo4j/neo4j
private void assertPathIsCorrect( Path path )
{
Node a = node( "A" );
Relationship to1 = getFistRelationship( a );
Node b = to1.getEndNode();
Relationship to2 = getFistRelationship( b );
Node c = to2.getEndNode();
Relationship to3 = getFistRelationship( c );
Node d = to3.getEndNode();
Relationship to4 = getFistRelationship( d );
Node e = to4.getEndNode();
assertEquals( (Integer) 4, (Integer) path.length() );
assertEquals( a, path.startNode() );
assertEquals( e, path.endNode() );
assertEquals( to4, path.lastRelationship() );
assertContainsInOrder( path, a, to1, b, to2, c, to3, d, to4, e );
assertContainsInOrder( path.nodes(), a, b, c, d, e );
assertContainsInOrder( path.relationships(), to1, to2, to3, to4 );
assertContainsInOrder( path.reverseNodes(), e, d, c, b, a );
assertContainsInOrder( path.reverseRelationships(), to4, to3, to2, to1 );
}
代码示例来源:origin: neo4j/neo4j
@Test
public void ensureCorrectPathEntitiesInShortPath()
{
/*
* (a)-->(b)
*/
createGraph( "a TO b" );
Node a = getNodeWithName( "a" );
Node b = getNodeWithName( "b" );
Relationship r = a.getSingleRelationship( to, OUTGOING );
Path path = Iterables.single( getGraphDb().bidirectionalTraversalDescription()
.mirroredSides( getGraphDb().traversalDescription().relationships( to, OUTGOING ).uniqueness( NODE_PATH ) )
.collisionEvaluator( Evaluators.atDepth( 1 ) )
.sideSelector( SideSelectorPolicies.LEVEL, 1 )
.traverse( a, b ) );
assertContainsInOrder( path.nodes(), a, b );
assertContainsInOrder( path.reverseNodes(), b, a );
assertContainsInOrder( path.relationships(), r );
assertContainsInOrder( path.reverseRelationships(), r );
assertContainsInOrder( path, a, r, b );
assertEquals( a, path.startNode() );
assertEquals( b, path.endNode() );
assertEquals( r, path.lastRelationship() );
}
代码示例来源:origin: org.neo4j/neo4j-graphdb-api
@Override
boolean idEquals( Path source, long idToCompare )
{
Relationship relationship = source.lastRelationship();
return relationship != null && relationship.getId() == idToCompare;
}
内容来源于网络,如有侵权,请联系作者删除!