diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-05-30 13:47:49 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2022-06-08 11:45:22 +0200 |
commit | 481fadf54a43cc678e5d85e4c37cc75a53a6d128 (patch) | |
tree | bd51d3e633ed3564f095fd834783dc7647961f59 /document | |
parent | 799145f6778ebb4aad9afa7c50fef88708c847ba (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.java | 22 | ||||
-rw-r--r-- | document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java | 4 |
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))); |