@Override public long getStartNodeId() { return sourceId(); }
@Override public Node getStartNode() { spi.assertInUnterminatedTransaction(); return spi.newNodeProxy( sourceId() ); }
@Override public long getOtherNodeId( long id ) { long start = sourceId(); long end = targetId(); if ( start == id ) { return end; } if ( end == id ) { return start; } throw new NotFoundException( "Node[" + id + "] not connected to this relationship[" + getId() + "]" ); }
@Override public Node[] getNodes() { spi.assertInUnterminatedTransaction(); return new Node[]{ spi.newNodeProxy( sourceId() ), spi.newNodeProxy( targetId() )}; }
@Override public String toString() { String relType; try { relType = spi.getRelationshipTypeById( typeId() ).name(); return format( "(%d)-[%s,%d]->(%d)", sourceId(), relType, getId(), targetId() ); } catch ( NotInTransactionException | DatabaseShutdownException e ) { // We don't keep the rel-name lookup if the database is shut down. Source ID and target ID also requires // database access in a transaction. However, failing on toString would be uncomfortably evil, so we fall // back to noting the relationship type id. } relType = "RELTYPE(" + type + ")"; return format( "(?)-[%s,%d]->(?)", relType, getId() ); }
@Override public long getStartNodeId() { return sourceId(); }
@Override public Node getStartNode() { spi.assertInUnterminatedTransaction(); return spi.newNodeProxy( sourceId() ); }
@Override public long getOtherNodeId( long id ) { long start = sourceId(); long end = targetId(); if ( start == id ) { return end; } if ( end == id ) { return start; } throw new NotFoundException( "Node[" + id + "] not connected to this relationship[" + getId() + "]" ); }
@Override public Node[] getNodes() { spi.assertInUnterminatedTransaction(); return new Node[]{ spi.newNodeProxy( sourceId() ), spi.newNodeProxy( targetId() )}; }
@Override public String toString() { String relType; try { relType = spi.getRelationshipTypeById( typeId() ).name(); return format( "(%d)-[%s,%d]->(%d)", sourceId(), relType, getId(), targetId() ); } catch ( NotInTransactionException | DatabaseShutdownException e ) { // We don't keep the rel-name lookup if the database is shut down. Source ID and target ID also requires // database access in a transaction. However, failing on toString would be uncomfortably evil, so we fall // back to noting the relationship type id. } relType = "RELTYPE(" + type + ")"; return format( "(?)-[%s,%d]->(?)", relType, getId() ); }