diff --git a/core/src/main/java/apoc/result/VirtualNode.java b/core/src/main/java/apoc/result/VirtualNode.java index 6dadbc2a8d..a89ff6c39e 100644 --- a/core/src/main/java/apoc/result/VirtualNode.java +++ b/core/src/main/java/apoc/result/VirtualNode.java @@ -23,21 +23,25 @@ public class VirtualNode implements Node { private final Map props = new HashMap<>(); private final List rels = new ArrayList<>(); private final long id; + private final String elementId; public VirtualNode(Label[] labels, Map props) { this.id = MIN_ID.getAndDecrement(); addLabels(asList(labels)); this.props.putAll(props); + this.elementId = null; } public VirtualNode(long nodeId, Label[] labels, Map props) { this.id = nodeId; addLabels(asList(labels)); this.props.putAll(props); + this.elementId = null; } public VirtualNode(long nodeId) { this.id = nodeId; + this.elementId = null; } public VirtualNode(Node node, List propertyNames) { @@ -46,6 +50,7 @@ public VirtualNode(Node node, List propertyNames) { this.labels.addAll(Util.labelStrings(node)); String[] keys = propertyNames.toArray(new String[propertyNames.size()]); this.props.putAll(node.getProperties(keys)); + this.elementId = node.getElementId(); } public static VirtualNode from(Node node) { @@ -57,6 +62,12 @@ public long getId() { return id; } + @Override + public String getElementId() + { + return elementId != null ? elementId : String.valueOf( id ); + } + @Override public void delete() { for (Relationship rel : rels) { diff --git a/core/src/main/java/apoc/result/VirtualRelationship.java b/core/src/main/java/apoc/result/VirtualRelationship.java index 34541244ba..3290f4e135 100644 --- a/core/src/main/java/apoc/result/VirtualRelationship.java +++ b/core/src/main/java/apoc/result/VirtualRelationship.java @@ -59,6 +59,12 @@ public long getId() { return id; } + @Override + public String getElementId() + { + return String.valueOf( id ); + } + @Override public void delete() { if (getStartNode() instanceof VirtualNode) ((VirtualNode) getStartNode()).delete(this); diff --git a/core/src/main/java/apoc/result/WrappedNode.java b/core/src/main/java/apoc/result/WrappedNode.java index 6d37c0bac1..4e1bbab8f2 100644 --- a/core/src/main/java/apoc/result/WrappedNode.java +++ b/core/src/main/java/apoc/result/WrappedNode.java @@ -38,6 +38,12 @@ public long getId() { return id; } + @Override + public String getElementId() + { + return String.valueOf( id ); + } + @Override public void delete() { for (Relationship rel : rels) {