Skip to content

Commit

Permalink
Merge pull request #8033 from espiegelberg/promote-getid-to-propertyC…
Browse files Browse the repository at this point in the history
…ontainer

Promote the getId() from the Node/Relationship to the PropertyContainer interface
  • Loading branch information
chrisvest committed Oct 12, 2016
2 parents 6661742 + 65daf0d commit 1c8d303
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* Copyright (c) 2002-2016 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
* This file is part of Neo4j.
*
* Neo4j is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.graphdb;

/**
* Provides the ability to obtain the unique id of the implementing
* {@link PropertyContainer}.
*/
public interface IdentifiablePropertyContainer extends PropertyContainer
{
/**
* Returns the unique id of this {@link PropertyContainer}. Id's are garbage
* collected over time so they are only guaranteed to be unique during a
* specific time span: if the {@link PropertyContainer} is deleted, it's
* likely that a new {@link PropertyContainer} at some point will get the old
* id. <b>Note</b>: this makes {@link PropertyContainer} id's brittle as
* public APIs.
*
* @return The id of this {@link PropertyContainer}
*/
long getId();

}
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,13 @@
* when nodes and relationships are deleted, which means it's bad practice to
* refer to them this way. Instead, use application generated ids.
*/
public interface Node extends PropertyContainer
public interface Node extends IdentifiablePropertyContainer
{
/**
* Returns the unique id of this node. Ids are garbage collected over time
* so they are only guaranteed to be unique during a specific time span: if
* the node is deleted, it's likely that a new node at some point will get
* the old id. <b>Note</b>: this makes node ids brittle as public APIs.
* the old id. <b>Note</b>: This makes node ids brittle as public APIs.
*
* @return the id of this node
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,20 +63,20 @@
* {@link #getOtherNode(Node)} and {@link #getNodes()} are guaranteed to always
* return valid, non-null nodes.
* <p>
* A node's id is unique, but note the following: Neo4j reuses its internal ids
* A relationship's id is unique, but note the following: Neo4j reuses its internal ids
* when nodes and relationships are deleted, which means it's bad practice to
* refer to them this way. Instead, use application generated ids.
*/
public interface Relationship extends PropertyContainer
public interface Relationship extends IdentifiablePropertyContainer
{
/**
* Returns the unique id of this relationship. Ids are garbage collected
* over time so they are only guaranteed to be unique during a specific time
* span: if the relationship is deleted, it's likely that a new relationship
* at some point will get the old id. This makes relationship ids brittle as
* public APIs.
* at some point will get the old id. <b>Note</b>: This makes relationship
* ids brittle as public APIs.
*
* @return the id of this node
* @return The id of this relationship
*/
long getId();

Expand Down

0 comments on commit 1c8d303

Please sign in to comment.