summaryrefslogtreecommitdiffstats
path: root/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/StringValue.java
diff options
context:
space:
mode:
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