summaryrefslogtreecommitdiffstats
path: root/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/StringValue.java
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-09-28 22:54:13 +0200
committerGitHub <noreply@github.com>2022-09-28 22:54:13 +0200
commit12992ecdc0e77968eb5c5544f2ae7d855e443162 (patch)
treeac8cec3ae02f27ae638876940399f490b4ac4ab1 /searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/StringValue.java
parentd50f7bd9c99ed9d8edeabb71825f3966f9cd6bd9 (diff)
parentfb0074925e9e8358d38145dc5753de1c935f737d (diff)
Merge pull request #24251 from vespa-engine/bratseth/operatorsv8.61.17
Bratseth/operators
Diffstat (limited to 'searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/StringValue.java')
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/StringValue.java73
1 files changed, 50 insertions, 23 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/StringValue.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/StringValue.java
index 2c2d5eead05..a585c989954 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/StringValue.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/StringValue.java
@@ -3,7 +3,6 @@ package com.yahoo.searchlib.rankingexpression.evaluation;
import com.yahoo.javacc.UnicodeUtilities;
import com.yahoo.searchlib.rankingexpression.rule.Function;
-import com.yahoo.searchlib.rankingexpression.rule.TruthOperator;
import com.yahoo.tensor.Tensor;
import com.yahoo.tensor.TensorType;
@@ -57,55 +56,83 @@ public class StringValue extends Value {
}
@Override
- public Value add(Value value) {
- return new StringValue(value + value.toString());
+ public Value not() {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support not");
}
@Override
- public Value subtract(Value value) {
- throw new UnsupportedOperationException("String values ('" + value + "') do not support subtraction");
+ public Value or(Value value) {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support or");
}
@Override
- public Value multiply(Value value) {
- throw new UnsupportedOperationException("String values ('" + value + "') do not support multiplication");
+ public Value and(Value value) {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support and");
}
@Override
- public Value divide(Value value) {
- throw new UnsupportedOperationException("String values ('" + value + "') do not support division");
+ public Value largerOrEqual(Value argument) {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support greaterEqual");
}
@Override
- public Value modulo(Value value) {
- throw new UnsupportedOperationException("String values ('" + value + "') do not support modulo");
+ public Value larger(Value argument) {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support greater");
}
@Override
- public Value and(Value value) {
- throw new UnsupportedOperationException("String values ('" + value + "') do not support and");
+ public Value smallerOrEqual(Value argument) {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support lessEqual");
}
@Override
- public Value or(Value value) {
- throw new UnsupportedOperationException("String values ('" + value + "') do not support or");
+ public Value smaller(Value argument) {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support less");
}
@Override
- public Value not() {
- throw new UnsupportedOperationException("String values ('" + value + "') do not support not");
+ public Value approxEqual(Value argument) {
+ return new BooleanValue(this.asDouble() == argument.asDouble());
}
@Override
- public Value power(Value value) {
- throw new UnsupportedOperationException("String values ('" + value + "') do not support ^");
+ public Value notEqual(Value argument) {
+ return new BooleanValue(this.asDouble() != argument.asDouble());
+ }
+
+ @Override
+ public Value equal(Value argument) {
+ return new BooleanValue(this.asDouble() == argument.asDouble());
}
@Override
- public Value compare(TruthOperator operator, Value value) {
- if (operator.equals(TruthOperator.EQUAL))
- return new BooleanValue(this.equals(value));
- throw new UnsupportedOperationException("String values ('" + value + "') cannot be compared except with '=='");
+ public Value add(Value value) {
+ return new StringValue(value + value.toString());
+ }
+
+ @Override
+ public Value subtract(Value value) {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support subtraction");
+ }
+
+ @Override
+ public Value multiply(Value value) {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support multiplication");
+ }
+
+ @Override
+ public Value divide(Value value) {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support division");
+ }
+
+ @Override
+ public Value modulo(Value value) {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support modulo");
+ }
+
+ @Override
+ public Value power(Value value) {
+ throw new UnsupportedOperationException("String values ('" + value + "') do not support ^");
}
@Override