From 4acf3ae2cbec8ac1adc825213fcdf71c3f5dd235 Mon Sep 17 00:00:00 2001 From: Davide Grohmann Date: Mon, 2 Jan 2017 16:07:02 +0100 Subject: [PATCH] Simplify relationshipCursorById APIs --- .../org/neo4j/kernel/api/ReadOperations.java | 4 +--- .../ConstraintEnforcingEntityOperations.java | 8 +------ .../impl/api/GuardingStatementOperations.java | 7 ------ .../kernel/impl/api/OperationsFacade.java | 14 ++--------- .../api/StateHandlingStatementOperations.java | 3 +-- .../api/operations/EntityReadOperations.java | 2 -- .../kernel/impl/core/RelationshipProxy.java | 24 ++++++++----------- 7 files changed, 15 insertions(+), 47 deletions(-) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/ReadOperations.java b/community/kernel/src/main/java/org/neo4j/kernel/api/ReadOperations.java index 0710cde838c16..2caba65eca4fb 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/ReadOperations.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/ReadOperations.java @@ -206,8 +206,6 @@ long nodesCountIndexed( IndexDescriptor index, long nodeId, Object value ) boolean nodeExists( long nodeId ); - boolean relationshipExists( long relId ); - /** * Checks if a node is labeled with a certain label or not. Returns * {@code true} if the node is labeled with the label, otherwise {@code false.} @@ -259,7 +257,7 @@ void relationshipVisit( long relId, RelationshipVi Cursor nodeCursorById( long nodeId ) throws EntityNotFoundException; - Cursor relationshipCursor( long relId ); + Cursor relationshipCursorById( long relId ) throws EntityNotFoundException; //=========================================== //== SCHEMA OPERATIONS ====================== diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/ConstraintEnforcingEntityOperations.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/ConstraintEnforcingEntityOperations.java index 21234a42e3710..7be70d687a7b2 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/ConstraintEnforcingEntityOperations.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/ConstraintEnforcingEntityOperations.java @@ -425,18 +425,12 @@ public Cursor nodeCursorById( KernelStatement statement, long nodeId ) return entityReadOperations.nodeCursorById( statement, nodeId ); } - @Override + @Override public Cursor relationshipCursorById( KernelStatement statement, long relId ) throws EntityNotFoundException { return entityReadOperations.relationshipCursorById( statement, relId ); } - @Override - public Cursor relationshipCursor( KernelStatement statement, long relId ) - { - return entityReadOperations.relationshipCursor( statement, relId ); - } - @Override public Cursor relationshipCursorGetAll( KernelStatement statement ) { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/GuardingStatementOperations.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/GuardingStatementOperations.java index 14c7dfb79d225..067fc95980344 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/GuardingStatementOperations.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/GuardingStatementOperations.java @@ -309,13 +309,6 @@ public Cursor relationshipCursorById( KernelStatement statemen return entityReadDelegate.relationshipCursorById( statement, relId ); } - @Override - public Cursor relationshipCursor( KernelStatement statement, long relId ) - { - guard.check( statement ); - return entityReadDelegate.relationshipCursor( statement, relId ); - } - @Override public Cursor relationshipCursorGetAll( KernelStatement statement ) { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/OperationsFacade.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/OperationsFacade.java index bd592044d9560..6a6bcc2cad065 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/OperationsFacade.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/OperationsFacade.java @@ -297,16 +297,6 @@ public boolean nodeExists( long nodeId ) return dataRead().nodeExists( statement, nodeId ); } - @Override - public boolean relationshipExists( long relId ) - { - statement.assertOpen(); - try ( Cursor cursor = relationshipCursor( relId ) ) - { - return cursor.next(); - } - } - @Override public boolean nodeHasLabel( long nodeId, int labelId ) throws EntityNotFoundException { @@ -605,10 +595,10 @@ public Cursor nodeCursorById( long nodeId ) throws EntityNotFoundExcep } @Override - public Cursor relationshipCursor( long relId ) + public Cursor relationshipCursorById( long relId ) throws EntityNotFoundException { statement.assertOpen(); - return dataRead().relationshipCursor( statement, relId ); + return dataRead().relationshipCursorById( statement, relId ); } // diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java index eade3f83506a8..dd32edb6c0f88 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java @@ -165,8 +165,7 @@ public Cursor relationshipCursorById( KernelStatement statemen return relationship; } - @Override - public Cursor relationshipCursor( KernelStatement statement, long relationshipId ) + private Cursor relationshipCursor( KernelStatement statement, long relationshipId ) { Cursor cursor = statement.getStoreStatement().acquireSingleRelationshipCursor( relationshipId ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/operations/EntityReadOperations.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/operations/EntityReadOperations.java index 3908610397cb5..bb0748a6959c8 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/operations/EntityReadOperations.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/operations/EntityReadOperations.java @@ -140,8 +140,6 @@ void relationshipVisit( KernelStatement statement, Cursor relationshipCursorById( KernelStatement statement, long relId ) throws EntityNotFoundException; - Cursor relationshipCursor( KernelStatement statement, long relId ); - Cursor relationshipCursorGetAll( KernelStatement statement ); Cursor nodeCursorGetForLabel( KernelStatement statement, int labelId ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/RelationshipProxy.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/RelationshipProxy.java index ce8c4dd653c2d..068f77c539e91 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/RelationshipProxy.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/RelationshipProxy.java @@ -250,19 +250,17 @@ public Map getProperties( String... keys ) try ( Statement statement = actions.statement() ) { - try ( Cursor relationship = statement.readOperations().relationshipCursor( getId() ) ) + try ( Cursor relationship = statement.readOperations().relationshipCursorById( getId() ) ) { - if ( !relationship.next() ) - { - throw new NotFoundException( "Relationship not found", - new EntityNotFoundException( EntityType.RELATIONSHIP, getId() ) ); - } - try ( Cursor propertyCursor = relationship.get().properties() ) { return PropertyContainerProxyHelper.getProperties( statement, propertyCursor, keys ); } } + catch ( EntityNotFoundException e ) + { + throw new NotFoundException( "Relationship not found", e ); + } } } @@ -271,14 +269,8 @@ public Map getAllProperties() { try ( Statement statement = actions.statement() ) { - try ( Cursor relationship = statement.readOperations().relationshipCursor( getId() ) ) + try ( Cursor relationship = statement.readOperations().relationshipCursorById( getId() ) ) { - if ( !relationship.next() ) - { - throw new NotFoundException( "Relationship not found", - new EntityNotFoundException( EntityType.RELATIONSHIP, getId() ) ); - } - try ( Cursor propertyCursor = relationship.get().properties() ) { Map properties = new HashMap<>(); @@ -294,6 +286,10 @@ public Map getAllProperties() return properties; } } + catch ( EntityNotFoundException e ) + { + throw new NotFoundException( "Relationship not found", e ); + } } catch ( PropertyKeyIdNotFoundKernelException e ) {