java.lang.Object
com.yahoo.searchlib.rankingexpression.evaluation.Value
Direct Known Subclasses:
DoubleCompatibleValue, StringValue, TensorValue

public abstract class Value extends Object
The result of a ranking expression evaluation. Concrete subclasses of this provides implementations of these methods or throws UnsupportedOperationException if the operation is not supported.
Author:
bratseth
  • Constructor Details

    • Value

      public Value()
  • Method Details

    • type

      public abstract com.yahoo.tensor.TensorType type()
      Returns the type of this value
    • asDouble

      public abstract double asDouble()
      Returns this value as a double, or throws UnsupportedOperationException if it cannot be represented as a double
    • asDoubleValue

      public DoubleValue asDoubleValue()
      Returns this value as a double value, or throws UnsupportedOperationException if it cannot be represented as a double
    • isNaN

      public boolean isNaN()
      Returns true if this has a double value which is NaN
    • asTensor

      public abstract com.yahoo.tensor.Tensor asTensor()
      Returns this as a tensor value
    • doubleAsTensor

      protected com.yahoo.tensor.Tensor doubleAsTensor(double value)
      A utility method for wrapping a double in a rank 0 tensor
    • hasDouble

      public abstract boolean hasDouble()
      Returns true if this value can return itself as a double, i.e asDoubleValue will return a value and not throw
    • asBoolean

      public abstract boolean asBoolean()
      Returns this value as a boolean.
    • negate

      public abstract Value negate()
    • not

      public abstract Value not()
    • or

      public abstract Value or(Value value)
    • and

      public abstract Value and(Value value)
    • largerOrEqual

      public abstract Value largerOrEqual(Value value)
    • larger

      public abstract Value larger(Value value)
    • smallerOrEqual

      public abstract Value smallerOrEqual(Value value)
    • smaller

      public abstract Value smaller(Value value)
    • approxEqual

      public abstract Value approxEqual(Value value)
    • notEqual

      public abstract Value notEqual(Value value)
    • equal

      public abstract Value equal(Value value)
    • add

      public abstract Value add(Value value)
    • subtract

      public abstract Value subtract(Value value)
    • multiply

      public abstract Value multiply(Value value)
    • divide

      public abstract Value divide(Value value)
    • modulo

      public abstract Value modulo(Value value)
    • power

      public abstract Value power(Value value)
    • function

      public abstract Value function(Function function, Value value)
      Perform the given binary function on this value and the given value
    • freeze

      public Value freeze()
      Irreversibly makes this immutable. Overriders must always call super.freeze() and return this
      Returns:
      this for convenience
    • isFrozen

      public final boolean isFrozen()
      Returns true if this is immutable, false otherwise
    • asMutable

      public abstract Value asMutable()
      Returns this is mutable, or a mutable copy otherwise
    • toString

      public abstract String toString()
      Overrides:
      toString in class Object
    • equals

      public abstract boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public abstract int hashCode()
      Returns a hash which only depends on the content of this value.
      Overrides:
      hashCode in class Object
    • parse

      public static Value parse(String value)
      Parses the given string to a value and returns it. Different subtypes of Value will be returned depending on the string.
      Returns:
      a mutable Value
      Throws:
      IllegalArgumentException - if the given string is not parseable as a value
    • of

      public static Value of(com.yahoo.tensor.Tensor tensor)
    • of

      public static Value of(double scalar)