diff options
Diffstat (limited to 'document/src/main/java/com')
7 files changed, 45 insertions, 63 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java b/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java index 4618a516f66..6a75e35ebe5 100644 --- a/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java +++ b/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java @@ -45,11 +45,11 @@ public class JsonFeedReader implements FeedReader { } if (documentOperation instanceof DocumentUpdate) { - return new DocumentUpdateFeedOperation((DocumentUpdate) documentOperation, documentOperation.getCondition()); + return new DocumentUpdateFeedOperation((DocumentUpdate) documentOperation); } else if (documentOperation instanceof DocumentRemove) { - return new RemoveFeedOperation(documentOperation.getId(), documentOperation.getCondition()); + return new RemoveFeedOperation((DocumentRemove)documentOperation); } else if (documentOperation instanceof DocumentPut) { - return new DocumentFeedOperation(((DocumentPut) documentOperation).getDocument(), documentOperation.getCondition()); + return new DocumentFeedOperation((DocumentPut) documentOperation); } else { throw new IllegalArgumentException("Got unknown class from JSON reader: " + documentOperation.getClass().getName()); } diff --git a/document/src/main/java/com/yahoo/vespaxmlparser/ConditionalFeedOperation.java b/document/src/main/java/com/yahoo/vespaxmlparser/ConditionalFeedOperation.java deleted file mode 100644 index 2f63bad714c..00000000000 --- a/document/src/main/java/com/yahoo/vespaxmlparser/ConditionalFeedOperation.java +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespaxmlparser; - -import com.yahoo.document.TestAndSetCondition; - -public class ConditionalFeedOperation extends FeedOperation { - - private final TestAndSetCondition condition; - - protected ConditionalFeedOperation(Type type) { - super(type); - this.condition = TestAndSetCondition.NOT_PRESENT_CONDITION; - } - protected ConditionalFeedOperation(Type type, TestAndSetCondition condition) { - super(type); - this.condition = condition; - } - - @Override - public TestAndSetCondition getCondition() { - return condition; - } - -} diff --git a/document/src/main/java/com/yahoo/vespaxmlparser/DocumentFeedOperation.java b/document/src/main/java/com/yahoo/vespaxmlparser/DocumentFeedOperation.java index 5edb066ddaf..f76cad08e50 100644 --- a/document/src/main/java/com/yahoo/vespaxmlparser/DocumentFeedOperation.java +++ b/document/src/main/java/com/yahoo/vespaxmlparser/DocumentFeedOperation.java @@ -1,26 +1,26 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespaxmlparser; -import com.yahoo.document.Document; +import com.yahoo.document.DocumentPut; import com.yahoo.document.TestAndSetCondition; -public class DocumentFeedOperation extends ConditionalFeedOperation { +public class DocumentFeedOperation extends FeedOperation { - private final Document document; + private final DocumentPut put; - public DocumentFeedOperation(Document document) { + public DocumentFeedOperation(DocumentPut put) { super(Type.DOCUMENT); - this.document = document; + this.put = put; } - public DocumentFeedOperation(Document document, TestAndSetCondition condition) { - super(Type.DOCUMENT, condition); - this.document = document; + @Override + public DocumentPut getDocumentPut() { + return put; } @Override - public Document getDocument() { - return document; + public TestAndSetCondition getCondition() { + return put.getCondition(); } } diff --git a/document/src/main/java/com/yahoo/vespaxmlparser/DocumentUpdateFeedOperation.java b/document/src/main/java/com/yahoo/vespaxmlparser/DocumentUpdateFeedOperation.java index 59611a7d083..cddf0557bcc 100644 --- a/document/src/main/java/com/yahoo/vespaxmlparser/DocumentUpdateFeedOperation.java +++ b/document/src/main/java/com/yahoo/vespaxmlparser/DocumentUpdateFeedOperation.java @@ -4,19 +4,19 @@ package com.yahoo.vespaxmlparser; import com.yahoo.document.DocumentUpdate; import com.yahoo.document.TestAndSetCondition; -public class DocumentUpdateFeedOperation extends ConditionalFeedOperation { +public class DocumentUpdateFeedOperation extends FeedOperation { private final DocumentUpdate update; public DocumentUpdateFeedOperation(DocumentUpdate update) { super(Type.UPDATE); this.update = update; } - public DocumentUpdateFeedOperation(DocumentUpdate update, TestAndSetCondition condition) { - super(Type.UPDATE, condition); - this.update = update; - } @Override public DocumentUpdate getDocumentUpdate() { return update; } + @Override + public TestAndSetCondition getCondition() { + return update.getCondition(); + } } diff --git a/document/src/main/java/com/yahoo/vespaxmlparser/FeedOperation.java b/document/src/main/java/com/yahoo/vespaxmlparser/FeedOperation.java index 69d851b09bc..a77e752f79b 100644 --- a/document/src/main/java/com/yahoo/vespaxmlparser/FeedOperation.java +++ b/document/src/main/java/com/yahoo/vespaxmlparser/FeedOperation.java @@ -1,8 +1,8 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespaxmlparser; -import com.yahoo.document.Document; -import com.yahoo.document.DocumentId; +import com.yahoo.document.DocumentRemove; +import com.yahoo.document.DocumentPut; import com.yahoo.document.DocumentUpdate; import com.yahoo.document.TestAndSetCondition; @@ -21,9 +21,9 @@ public class FeedOperation { this.type = type; } - public Document getDocument() { return null; } + public DocumentPut getDocumentPut() { return null; } public DocumentUpdate getDocumentUpdate() { return null; } - public DocumentId getRemove() { return null; } + public DocumentRemove getDocumentRemove() { return null; } public TestAndSetCondition getCondition() { return TestAndSetCondition.NOT_PRESENT_CONDITION; @@ -32,8 +32,8 @@ public class FeedOperation { public String toString() { return "Operation{" + "type=" + getType() + - ", doc=" + getDocument() + - ", remove=" + getRemove() + + ", doc=" + getDocumentPut() + + ", remove=" + getDocumentRemove() + ", docUpdate=" + getDocumentUpdate() + " testandset=" + getCondition() + '}'; diff --git a/document/src/main/java/com/yahoo/vespaxmlparser/RemoveFeedOperation.java b/document/src/main/java/com/yahoo/vespaxmlparser/RemoveFeedOperation.java index 86bd4632905..82455ea165a 100644 --- a/document/src/main/java/com/yahoo/vespaxmlparser/RemoveFeedOperation.java +++ b/document/src/main/java/com/yahoo/vespaxmlparser/RemoveFeedOperation.java @@ -1,22 +1,22 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespaxmlparser; -import com.yahoo.document.DocumentId; +import com.yahoo.document.DocumentRemove; import com.yahoo.document.TestAndSetCondition; -public class RemoveFeedOperation extends ConditionalFeedOperation { - private final DocumentId documentId; - public RemoveFeedOperation(DocumentId documentId) { +public class RemoveFeedOperation extends FeedOperation { + private final DocumentRemove remove; + public RemoveFeedOperation(DocumentRemove remove) { super(Type.REMOVE); - this.documentId = documentId; - } - public RemoveFeedOperation(DocumentId documentId, TestAndSetCondition condition) { - super(Type.REMOVE, condition); - this.documentId = documentId; + this.remove = remove; } @Override - public DocumentId getRemove() { - return documentId; + public DocumentRemove getDocumentRemove() { + return remove; + } + @Override + public TestAndSetCondition getCondition() { + return remove.getCondition(); } } diff --git a/document/src/main/java/com/yahoo/vespaxmlparser/VespaXMLFeedReader.java b/document/src/main/java/com/yahoo/vespaxmlparser/VespaXMLFeedReader.java index 361665a2ef1..85123de349a 100644 --- a/document/src/main/java/com/yahoo/vespaxmlparser/VespaXMLFeedReader.java +++ b/document/src/main/java/com/yahoo/vespaxmlparser/VespaXMLFeedReader.java @@ -3,6 +3,8 @@ package com.yahoo.vespaxmlparser; import com.yahoo.document.Document; import com.yahoo.document.DocumentId; +import com.yahoo.document.DocumentPut; +import com.yahoo.document.DocumentRemove; import com.yahoo.document.DocumentTypeManager; import com.yahoo.document.DocumentUpdate; import com.yahoo.document.TestAndSetCondition; @@ -99,12 +101,14 @@ public class VespaXMLFeedReader extends VespaXMLReader implements FeedReader { if ("document".equals(startTag)) { VespaXMLDocumentReader documentReader = new VespaXMLDocumentReader(reader, docTypeManager); - Document document = new Document(documentReader); - return new DocumentFeedOperation(document, TestAndSetCondition.fromConditionString(documentReader.getCondition())); + DocumentPut put = new DocumentPut(new Document(documentReader)); + put.setCondition(TestAndSetCondition.fromConditionString(documentReader.getCondition())); + return new DocumentFeedOperation(put); } else if ("update".equals(startTag)) { VespaXMLUpdateReader updateReader = new VespaXMLUpdateReader(reader, docTypeManager); DocumentUpdate update = new DocumentUpdate(updateReader); - return new DocumentUpdateFeedOperation(update, TestAndSetCondition.fromConditionString(updateReader.getCondition())); + update.setCondition(TestAndSetCondition.fromConditionString(updateReader.getCondition())); + return new DocumentUpdateFeedOperation(update); } else if ("remove".equals(startTag)) { DocumentId documentId = null; @@ -121,7 +125,9 @@ public class VespaXMLFeedReader extends VespaXMLReader implements FeedReader { if (documentId == null) { throw newDeserializeException("Missing \"documentid\" attribute for remove operation"); } - return new RemoveFeedOperation(documentId, TestAndSetCondition.fromConditionString(condition)); + DocumentRemove remove = new DocumentRemove(documentId); + remove.setCondition(TestAndSetCondition.fromConditionString(condition)); + return new RemoveFeedOperation(remove); } else { throw newDeserializeException("Element \"" + startTag + "\" not allowed in this context"); } |