aboutsummaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2023-04-19 14:50:26 +0200
committerGitHub <noreply@github.com>2023-04-19 14:50:26 +0200
commit6c98021a888d31632eeb2140c771b4a07a60ed73 (patch)
tree0b2b2ff0d0b02b314e9649431c26e550c2d32218 /document
parent7406547ddead0bf97c30a912b7873d2c5fbd9e3a (diff)
parent021caaf5074b7f2d561c15068e3f2d52ca0e36f2 (diff)
Merge pull request #26782 from vespa-engine/havardpe/create-if-non-existent-for-document-put
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.java14
2 files changed, 18 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..f91ef9a9ee2 100644
--- a/document/src/main/java/com/yahoo/document/DocumentPut.java
+++ b/document/src/main/java/com/yahoo/document/DocumentPut.java
@@ -2,6 +2,7 @@
package com.yahoo.document;
import java.util.Objects;
+import com.yahoo.api.annotations.Beta;
/**
* @author Vegard Sjonfjell
@@ -9,6 +10,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 +40,7 @@ public class DocumentPut extends DocumentOperation {
public DocumentPut(DocumentPut other) {
super(other);
this.document = new Document(other.getDocument());
+ createIfNonExistent = other.createIfNonExistent;
}
/**
@@ -46,6 +49,7 @@ public class DocumentPut extends DocumentOperation {
public DocumentPut(DocumentPut other, Document newDocument) {
super(other);
this.document = newDocument;
+ createIfNonExistent = other.createIfNonExistent;
}
@Override
@@ -54,6 +58,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 +72,13 @@ public class DocumentPut extends DocumentOperation {
return "put of document " + getId();
}
+ @Beta
+ public void setCreateIfNonExistent(boolean value) {
+ createIfNonExistent = value;
+ }
+
+ @Beta
+ public boolean getCreateIfNonExistent() {
+ return createIfNonExistent;
+ }
}