Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ExpressionEvaluationContext.evaluateExpression made default #880

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -153,24 +153,6 @@ public <T> Either<T, String> convert(final Object value,

private final ConverterContext converterContext;

// eval.............................................................................................................

// if changed copy to ScopedExpressionEvaluationContext#evaluate
@Override
public Object evaluateExpression(final Expression expression) {
Objects.requireNonNull(expression, "expression");

Object result;

try {
result = expression.toValue(this);
} catch (final RuntimeException exception) {
result = this.handleException(exception);
}

return result;
}

// functions........................................................................................................

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,6 @@ public <T> T prepareParameter(final ExpressionFunctionParameter<T> parameter,
return this.context.prepareParameter(parameter, value);
}

@Override
public Object evaluateExpression(final Expression expression) {
return this.context.evaluateExpression(expression);
}

@Override
public Object evaluateFunction(final ExpressionFunction<?, ? extends ExpressionEvaluationContext> function,
final List<Object> parameters) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import walkingkooka.tree.expression.function.HasExpressionFunction;

import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Function;
import java.util.function.Supplier;
Expand Down Expand Up @@ -66,7 +67,19 @@ default Object evaluateIfNecessary(final Object value) {
/**
* Evaluate the given {@link Expression} returning the result/value.
*/
Object evaluateExpression(final Expression expression);
default Object evaluateExpression(final Expression expression) {
Objects.requireNonNull(expression, "expression");

Object result;

try {
result = expression.toValue(this);
} catch (final RuntimeException exception) {
result = this.handleException(exception);
}

return result;
}

/**
* Creates a lambda {@link ExpressionFunction}, the given parameters become scoped variables when the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,6 @@ public <T> T prepareParameter(final ExpressionFunctionParameter<T> parameter,
throw new UnsupportedOperationException();
}

@Override
public Object evaluateExpression(final Expression expression) {
Objects.requireNonNull(expression, "expression");
throw new UnsupportedOperationException();
}

@Override
public Object evaluateFunction(final ExpressionFunction<?, ? extends ExpressionEvaluationContext> function,
final List<Object> parameters) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,22 +68,6 @@ public Optional<Optional<Object>> reference(final ExpressionReference reference)

private final Function<ExpressionReference, Optional<Optional<Object>>> referenceToValue;

// copied from BasicExpressionEvaluationContext
@Override
public Object evaluateExpression(final Expression expression) {
Objects.requireNonNull(expression, "expression");

Object result;

try {
result = expression.toValue(this);
} catch (final RuntimeException exception) {
result = this.handleException(exception);
}

return result;
}

// copied from BasicExpressionEvaluationContext
@Override
public Object evaluateFunction(final ExpressionFunction<?, ? extends ExpressionEvaluationContext> function,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import walkingkooka.naming.Name;
import walkingkooka.text.CaseSensitivity;
import walkingkooka.tree.Node;
import walkingkooka.tree.expression.Expression;
import walkingkooka.tree.expression.ExpressionEvaluationContext;
import walkingkooka.tree.expression.ExpressionFunctionName;
import walkingkooka.tree.expression.ExpressionNumber;
Expand Down Expand Up @@ -113,11 +112,6 @@ public <T> T prepareParameter(final ExpressionFunctionParameter<T> parameter,
return this.context.prepareParameter(parameter, value);
}

@Override
public Object evaluateExpression(final Expression expression) {
return expression.toValue(this);
}

/**
* Before invoking the {@link ExpressionFunction} identified by the given {@link ExpressionFunctionName} parameters are resolved
*/
Expand Down
20 changes: 0 additions & 20 deletions src/test/java/walkingkooka/tree/expression/CallExpressionTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -254,11 +254,6 @@ public <T> Either<T, String> convert(final Object value,
);
}

@Override
public Object evaluateExpression(final Expression expression) {
return expression.toValue(this);
}

@Override
public Object evaluateFunction(final ExpressionFunction<?, ? extends ExpressionEvaluationContext> function,
final List<Object> parameters) {
Expand Down Expand Up @@ -304,11 +299,6 @@ public <T> Either<T, String> convert(final Object value,
);
}

@Override
public Object evaluateExpression(final Expression expression) {
return expression.toValue(this);
}

@Override
public boolean isText(final Object value) {
return false;
Expand All @@ -332,11 +322,6 @@ public <T> Either<T, String> convert(final Object value,
);
}

@Override
public Object evaluateExpression(final Expression expression) {
return expression.toValue(this);
}

@Override
public Object evaluateFunction(final ExpressionFunction<?, ? extends ExpressionEvaluationContext> function,
final List<Object> parameters) {
Expand Down Expand Up @@ -429,11 +414,6 @@ public <T> Either<T, String> convert(final Object value,
);
}

@Override
public Object evaluateExpression(final Expression expression) {
return expression.toValue(this);
}

@Override
public Object evaluateFunction(final ExpressionFunction<?, ? extends ExpressionEvaluationContext> function,
final List<Object> parametersValues) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -383,11 +383,6 @@ public ExpressionFunction<?, ExpressionEvaluationContext> expressionFunction(fin
throw new UnknownExpressionFunctionException(name);
}

@Override
public Object evaluateExpression(final Expression expression) {
return expression.toValue(this);
}

@Override
public boolean isPure(final ExpressionFunctionName name) {
Objects.requireNonNull(name, "name");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,6 @@ public Optional<Optional<Object>> reference(final ExpressionReference reference)
return this.expressionEvaluationContext().reference(reference);
}

@Override
public Object evaluateExpression(final Expression expression) {
Objects.requireNonNull(expression, "expression");

return "evaluate->Test";
}

@Override
public Object evaluateFunction(final ExpressionFunction<?, ? extends ExpressionEvaluationContext> function,
final List<Object> parameters) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,12 +81,7 @@ public void testEvaluateIfNecessaryExpression() {
final Expression input = Expression.value(output);

this.evaluateIfNecessary(
new FakeExpressionEvaluationContext() {
@Override
public Object evaluateExpression(final Expression expression) {
return ValueExpression.class.cast(expression).value();
}
},
ExpressionEvaluationContexts.fake(),
input,
output
);
Expand Down Expand Up @@ -144,11 +139,6 @@ public Optional<Optional<Object>> reference(final ExpressionReference reference)
)
);
}

@Override
public Object evaluateExpression(final Expression expression) {
return ValueExpression.class.cast(expression).value();
}
},
input,
output
Expand Down Expand Up @@ -230,11 +220,6 @@ public <T> Either<T, String> convert(final Object value,
);
}

@Override
public Object evaluateExpression(final Expression expression) {
return expression.toValue(this);
}

@Override
public boolean isText(final Object value) {
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,11 +168,6 @@ public <T> Either<T, String> convert(final Object value,
);
}

@Override
public Object evaluateExpression(final Expression expression) {
return expression.toValue(this);
}

@Override
public boolean isText(final Object value) {
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,11 +169,6 @@ public <T> Either<T, String> convert(final Object value,
);
}

@Override
public Object evaluateExpression(final Expression expression) {
return expression.toValue(this);
}

public boolean isText(final Object value) {
return value instanceof String;
}
Expand Down