All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javarepl.Evaluation Maven / Gradle / Ivy

package javarepl;

import com.googlecode.totallylazy.Option;
import com.googlecode.totallylazy.functions.Function1;
import javarepl.expressions.Expression;

public class Evaluation {
    private final Expression expression;
    private final Option result;

    private Evaluation(Expression expression, Option result) {
        this.expression = expression;
        this.result = result;
    }

    public Expression expression() {
        return expression;
    }

    public Option result() {
        return result;
    }

    public static Evaluation evaluation(Expression expression, Option result) {
        return new Evaluation(expression, result);
    }


    @Override
    public String toString() {
        return expression + "=>" + result;
    }

    @Override
    public int hashCode() {
        return (expression != null ? expression.hashCode() : 0) +
                (result != null ? result.hashCode() : 0);
    }

    @Override
    public boolean equals(Object other) {
        return other instanceof Evaluation &&
                (expression != null && expression.equals(((Evaluation) other).expression)) &&
                (result != null && result.equals(((Evaluation) other).result));
    }

    public static final class functions {
        public static Function1> result() {
            return value -> value.result;
        }

        public static Function1 expression() {
            return value -> value.expression;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy