Class Value
- 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 Summary
Constructors Constructor Description Value()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Value
add(Value value)
abstract Value
and(Value value)
abstract boolean
asBoolean()
Returns this value as a boolean.abstract double
asDouble()
Returns this value as a double, or throws UnsupportedOperationException if it cannot be represented as a doubleDoubleValue
asDoubleValue()
Returns this value as a double value, or throws UnsupportedOperationException if it cannot be represented as a doubleabstract Value
asMutable()
Returns this is mutable, or a mutable copy otherwiseabstract com.yahoo.tensor.Tensor
asTensor()
Returns this as a tensor valueabstract Value
compare(TruthOperator operator, Value value)
Perform the comparison specified by the operator between this value and the given valueabstract Value
divide(Value value)
protected com.yahoo.tensor.Tensor
doubleAsTensor(double value)
A utility method for wrapping a double in a rank 0 tensorabstract boolean
equals(Object other)
Value
freeze()
Irreversibly makes this immutable.abstract Value
function(Function function, Value value)
Perform the given binary function on this value and the given valueabstract boolean
hasDouble()
Returns true if this value can return itself as a double, i.e asDoubleValue will return a value and not throwabstract int
hashCode()
boolean
isFrozen()
Returns true if this is immutable, false otherwiseboolean
isNaN()
Returns true if this has a double value which is NaNabstract Value
modulo(Value value)
abstract Value
multiply(Value value)
abstract Value
negate()
abstract Value
not()
static Value
of(double scalar)
static Value
of(com.yahoo.tensor.Tensor tensor)
abstract Value
or(Value value)
static Value
parse(String value)
Parses the given string to a value and returns it.abstract Value
power(Value value)
abstract Value
subtract(Value value)
abstract String
toString()
abstract com.yahoo.tensor.TensorType
type()
Returns the type of this value
-
-
-
Method Detail
-
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()
-
compare
public abstract Value compare(TruthOperator operator, Value value)
Perform the comparison specified by the operator between this value and the given 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
-
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)
-
-