diff options
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.java | 73 |
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 |