aboutsummaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@yahooinc.com>2023-04-18 11:53:03 +0000
committerHåvard Pettersen <havardpe@yahooinc.com>2023-04-19 10:09:09 +0000
commit8b17820cc0367a3e35a951dabed21a9c2d3ab75e (patch)
tree09829ac5f5684532b3eaca0b1d206bace8f295dc /document
parentee613a99dc15b6acaaf923c60d76fe9428c0aee8 (diff)
add create-if-non-existent flag for document put
Diffstat (limited to 'document')
-rw-r--r--document/abi-spec.json6
-rw-r--r--document/src/main/java/com/yahoo/document/DocumentPut.java10
2 files changed, 14 insertions, 2 deletions
diff --git a/document/abi-spec.json b/document/abi-spec.json
index 5f520f1a4d1..f3ed7c389a1 100644
--- a/document/abi-spec.json
+++ b/document/abi-spec.json
@@ -387,7 +387,9 @@
"public void <init>(com.yahoo.document.DocumentPut, com.yahoo.document.Document)",
"public boolean equals(java.lang.Object)",
"public int hashCode()",
- "public java.lang.String toString()"
+ "public java.lang.String toString()",
+ "public void setCreateIfNonExistent(boolean)",
+ "public boolean getCreateIfNonExistent()"
],
"fields" : [ ]
},
@@ -3549,4 +3551,4 @@
"protected com.yahoo.document.update.ValueUpdate$ValueUpdateClassID valueUpdateClassID"
]
}
-} \ No newline at end of file
+}
diff --git a/document/src/main/java/com/yahoo/document/DocumentPut.java b/document/src/main/java/com/yahoo/document/DocumentPut.java
index bfadaa8d4da..a421d5b96d4 100644
--- a/document/src/main/java/com/yahoo/document/DocumentPut.java
+++ b/document/src/main/java/com/yahoo/document/DocumentPut.java
@@ -9,6 +9,7 @@ import java.util.Objects;
public class DocumentPut extends DocumentOperation {
private final Document document;
+ private boolean createIfNonExistent;
public DocumentPut(Document document) {
this.document = document;
@@ -38,6 +39,7 @@ public class DocumentPut extends DocumentOperation {
public DocumentPut(DocumentPut other) {
super(other);
this.document = new Document(other.getDocument());
+ createIfNonExistent = other.createIfNonExistent;
}
/**
@@ -46,6 +48,7 @@ public class DocumentPut extends DocumentOperation {
public DocumentPut(DocumentPut other, Document newDocument) {
super(other);
this.document = newDocument;
+ createIfNonExistent = other.createIfNonExistent;
}
@Override
@@ -54,6 +57,7 @@ public class DocumentPut extends DocumentOperation {
if (o == null || getClass() != o.getClass()) return false;
DocumentPut that = (DocumentPut) o;
return document.equals(that.document) &&
+ (createIfNonExistent == that.createIfNonExistent) &&
Objects.equals(getCondition(), that.getCondition());
}
@@ -67,4 +71,10 @@ public class DocumentPut extends DocumentOperation {
return "put of document " + getId();
}
+ public void setCreateIfNonExistent(boolean value) {
+ createIfNonExistent = value;
+ }
+ public boolean getCreateIfNonExistent() {
+ return createIfNonExistent;
+ }
}