New architecture
This commit is contained in:
@@ -3,7 +3,6 @@ package org.solovyev.android.calculator;
|
||||
import jscl.AbstractJsclArithmeticException;
|
||||
import jscl.NumeralBase;
|
||||
import jscl.NumeralBaseException;
|
||||
import jscl.math.Expression;
|
||||
import jscl.math.Generic;
|
||||
import jscl.text.ParseInterruptedException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -238,8 +237,7 @@ public class CalculatorImpl implements Calculator, CalculatorEventListener {
|
||||
expression = expression.trim();
|
||||
|
||||
if (StringUtils.isEmpty(expression)) {
|
||||
final CalculatorOutputImpl data = new CalculatorOutputImpl("", operation, Expression.valueOf(""));
|
||||
fireCalculatorEvent(newCalculationEventData(operation, expression, sequenceId), CalculatorEventType.calculation_result, data);
|
||||
fireCalculatorEvent(newCalculationEventData(operation, expression, sequenceId), CalculatorEventType.calculation_result, CalculatorOutputImpl.newEmptyOutput(operation));
|
||||
} else {
|
||||
preparedExpression = preprocessor.process(expression);
|
||||
|
||||
@@ -252,7 +250,7 @@ public class CalculatorImpl implements Calculator, CalculatorEventListener {
|
||||
// NOTE: toString() method must be called here as ArithmeticOperationException may occur in it (just to avoid later check!)
|
||||
result.toString();
|
||||
|
||||
final CalculatorOutputImpl data = new CalculatorOutputImpl(operation.getFromProcessor().process(result), operation, result);
|
||||
final CalculatorOutput data = CalculatorOutputImpl.newOutput(operation.getFromProcessor().process(result), operation, result);
|
||||
fireCalculatorEvent(newCalculationEventData(operation, expression, sequenceId), CalculatorEventType.calculation_result, data);
|
||||
|
||||
} catch (AbstractJsclArithmeticException e) {
|
||||
|
@@ -2,6 +2,7 @@ package org.solovyev.android.calculator;
|
||||
|
||||
import jscl.math.Generic;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.solovyev.android.calculator.jscl.JsclOperation;
|
||||
|
||||
/**
|
||||
@@ -17,6 +18,8 @@ public interface CalculatorOutput {
|
||||
@NotNull
|
||||
JsclOperation getOperation();
|
||||
|
||||
@NotNull
|
||||
|
||||
// null in case of empty expression
|
||||
@Nullable
|
||||
Generic getResult();
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@ package org.solovyev.android.calculator;
|
||||
|
||||
import jscl.math.Generic;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.solovyev.android.calculator.jscl.JsclOperation;
|
||||
|
||||
/**
|
||||
@@ -11,7 +12,7 @@ import org.solovyev.android.calculator.jscl.JsclOperation;
|
||||
*/
|
||||
public class CalculatorOutputImpl implements CalculatorOutput {
|
||||
|
||||
@NotNull
|
||||
@Nullable
|
||||
private Generic result;
|
||||
|
||||
@NotNull
|
||||
@@ -20,12 +21,26 @@ public class CalculatorOutputImpl implements CalculatorOutput {
|
||||
@NotNull
|
||||
private JsclOperation operation;
|
||||
|
||||
public CalculatorOutputImpl(@NotNull String stringResult, @NotNull JsclOperation operation, @NotNull Generic result) {
|
||||
private CalculatorOutputImpl(@NotNull String stringResult,
|
||||
@NotNull JsclOperation operation,
|
||||
@Nullable Generic result) {
|
||||
this.stringResult = stringResult;
|
||||
this.operation = operation;
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static CalculatorOutput newOutput(@NotNull String stringResult,
|
||||
@NotNull JsclOperation operation,
|
||||
@NotNull Generic result) {
|
||||
return new CalculatorOutputImpl(stringResult, operation, result);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static CalculatorOutput newEmptyOutput(@NotNull JsclOperation operation) {
|
||||
return new CalculatorOutputImpl("", operation, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getStringResult() {
|
||||
@@ -39,7 +54,7 @@ public class CalculatorOutputImpl implements CalculatorOutput {
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
@Nullable
|
||||
public Generic getResult() {
|
||||
return result;
|
||||
}
|
||||
|
Reference in New Issue
Block a user