summaryrefslogtreecommitdiffstats
path: root/documentapi/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'documentapi/src/main/java/com')
-rwxr-xr-xdocumentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/PutDocumentMessage.java11
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories60.java9
2 files changed, 20 insertions, 0 deletions
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/PutDocumentMessage.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/PutDocumentMessage.java
index 4482e5bfc47..3e04b2ab669 100755
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/PutDocumentMessage.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/PutDocumentMessage.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.documentapi.messagebus.protocol;
+import com.yahoo.api.annotations.Beta;
import com.yahoo.document.DocumentPut;
import com.yahoo.document.TestAndSetCondition;
import com.yahoo.document.serialization.DocumentDeserializer;
@@ -129,4 +130,14 @@ public class PutDocumentMessage extends TestAndSetMessage {
put.setCondition(condition);
}
+ @Beta
+ public void setCreateIfNonExistent(boolean value) {
+ put.setCreateIfNonExistent(value);
+ }
+
+ @Beta
+ public boolean getCreateIfNonExistent() {
+ deserialize();
+ return put.getCreateIfNonExistent();
+ }
}
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories60.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories60.java
index 099839672a2..9812f214066 100644
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories60.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutableFactories60.java
@@ -607,6 +607,10 @@ public abstract class RoutableFactories60 {
msg.setDocumentPut(new DocumentPut(Document.createDocument(buf)));
msg.setTimestamp(buf.getLong(null));
decodeTasCondition(msg, buf);
+ if (buf.getBuf().hasRemaining()) {
+ byte value = buf.getBuf().get();
+ msg.setCreateIfNonExistent(value != 0);
+ }
}
@Override
@@ -627,6 +631,11 @@ public abstract class RoutableFactories60 {
msg.getDocumentPut().getDocument().serialize(buf);
buf.putLong(null, msg.getTimestamp());
encodeTasCondition(buf, (TestAndSetMessage) obj);
+ if (msg.getCreateIfNonExistent()) {
+ buf.getBuf().put((byte)1);
+ } else {
+ buf.getBuf().put((byte)0);
+ }
}
return true;
}