summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2022-05-30 13:47:49 +0200
committergjoranv <gv@verizonmedia.com>2022-06-08 11:45:22 +0200
commit481fadf54a43cc678e5d85e4c37cc75a53a6d128 (patch)
treebd51d3e633ed3564f095fd834783dc7647961f59 /document
parent799145f6778ebb4aad9afa7c50fef88708c847ba (diff)
Use exact document type matching semantics for Java document selector implementation
Diffstat (limited to 'document')
-rw-r--r--document/src/main/java/com/yahoo/document/select/rule/DocumentTypeNode.java22
-rw-r--r--document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java4
2 files changed, 2 insertions, 24 deletions
diff --git a/document/src/main/java/com/yahoo/document/select/rule/DocumentTypeNode.java b/document/src/main/java/com/yahoo/document/select/rule/DocumentTypeNode.java
index 57bb809de40..b161f2190f0 100644
--- a/document/src/main/java/com/yahoo/document/select/rule/DocumentTypeNode.java
+++ b/document/src/main/java/com/yahoo/document/select/rule/DocumentTypeNode.java
@@ -46,27 +46,7 @@ public class DocumentTypeNode implements ExpressionNode {
}
private Object evaluate(DocumentOperation op) {
- // TODO Vespa 8: Uncomment the following line and remove the legacy one
- // return op.getId().getDocType().equals(type) ? op : false;
- return legacyEvaluate(op);
- }
-
- private Object legacyEvaluate(DocumentOperation op) {
- DocumentType doct;
- if (op instanceof DocumentPut) {
- doct = ((DocumentPut) op).getDocument().getDataType();
- } else if (op instanceof DocumentUpdate) {
- doct = ((DocumentUpdate) op).getDocumentType();
- } else if (op instanceof DocumentRemove) {
- DocumentRemove removeOp = (DocumentRemove) op;
- return (removeOp.getId().getDocType().equals(type) ? op : Boolean.FALSE);
- } else if (op instanceof DocumentGet) {
- DocumentGet getOp = (DocumentGet) op;
- return (getOp.getId().getDocType().equals(type) ? op : Boolean.FALSE);
- } else {
- throw new IllegalStateException("Document class '" + op.getClass().getName() + "' is not supported.");
- }
- return doct.isA(this.type) ? op : Boolean.FALSE;
+ return op.getId().getDocType().equals(type) ? op : false;
}
public void accept(Visitor visitor) {
diff --git a/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java b/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java
index 38fdadb18e4..b7a3589a4d0 100644
--- a/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java
+++ b/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java
@@ -778,9 +778,7 @@ public class DocumentSelectorTestCase {
var s=new DocumentSelector("parent.parentField = \"parentValue\"");
List<DocumentPut> documents = createDocs();
assertEquals(Result.TRUE, evaluate("test", documents.get(0)));
- // TODO Vespa 8: Change the following assert (only) to expect Result.FALSE
- assertEquals("Matching on type is [on Vespa 7, not] exact",
- Result.TRUE, evaluate("parent", documents.get(0)));
+ assertEquals("Matching on type is exact", Result.FALSE, evaluate("parent", documents.get(0)));
assertEquals(Result.TRUE, evaluate("test.parentField = \"parentValue\"", documents.get(0)));
assertEquals("Fields may be accessed by parent type",
Result.TRUE, evaluate("parent.parentField = \"parentValue\"", documents.get(0)));