diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-08 21:11:42 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-08 21:11:42 +0000 |
| commit | 785907ae2284350e0091e903825f2f717a9c29cc (patch) | |
| tree | eb051f710fa25311b22cfb2187fa6e80c1cf3953 | |
| parent | 7638649357e9cc2c339e743dc84b5249c6cdc0de (diff) | |
Replace constructor with StringInterpreterValue with static constructor
4 files changed, 15 insertions, 13 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java index bc3ef80..cb3172d 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java @@ -5,7 +5,6 @@ import org.zwobble.couscous.values.IntegerValue; import org.zwobble.couscous.values.ObjectValues; import org.zwobble.couscous.values.StringValue; -import static java.util.Arrays.asList; import static org.zwobble.couscous.util.ExtraLists.list; public class BoxedIntegerInterpreterValue { @@ -49,7 +48,7 @@ public class BoxedIntegerInterpreterValue { .method("toString", list(), (environment, arguments) -> { IntegerInterpreterValue value = (IntegerInterpreterValue)arguments.getReceiver().getField("value"); - return new StringInterpreterValue(Integer.toString(value.getValue())); + return StringInterpreterValue.of(Integer.toString(value.getValue())); }) .build(); diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java b/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java index 37a0669..e06732a 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java @@ -15,7 +15,7 @@ public class InterpreterValues { } public static InterpreterValue value(String value) { - return new StringInterpreterValue(value); + return StringInterpreterValue.of(value); } public static InterpreterValue value(PrimitiveValue value) { @@ -27,7 +27,7 @@ public class InterpreterValues { @Override public InterpreterValue visit(StringValue value) { - return new StringInterpreterValue(value.getValue()); + return StringInterpreterValue.of(value.getValue()); } @Override diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java index b19d849..e8fd83b 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java @@ -18,18 +18,26 @@ public final class StringInterpreterValue implements InterpreterValue { .method("substring", list(IntegerValue.REF, IntegerValue.REF), (environment, arguments) -> { IntegerInterpreterValue startIndex = (IntegerInterpreterValue)arguments.get(0); IntegerInterpreterValue endIndex = (IntegerInterpreterValue)arguments.get(1); - return new StringInterpreterValue(arguments.getReceiver().value.substring(startIndex.getValue(), endIndex.getValue())); + return of(arguments.getReceiver().value.substring(startIndex.getValue(), endIndex.getValue())); }) .method("add", list(StringValue.REF), (environment, arguments) -> { StringInterpreterValue right = (StringInterpreterValue)arguments.get(0); - return new StringInterpreterValue(arguments.getReceiver().value + right.value); + return of(arguments.getReceiver().value + right.value); }) .build(); private final String value; - + + private StringInterpreterValue(final String value) { + this.value = value; + } + + public static StringInterpreterValue of(final String value) { + return new StringInterpreterValue(value); + } + @Override public ConcreteType getType() { return TYPE; @@ -50,10 +58,6 @@ public final class StringInterpreterValue implements InterpreterValue { throw new NoSuchField(fieldName); } - public StringInterpreterValue(final String value) { - this.value = value; - } - public String getValue() { return this.value; } diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java index f9d57b8..d3c2a12 100644 --- a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java +++ b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java @@ -19,7 +19,6 @@ import org.zwobble.couscous.values.StringValue; import com.google.common.collect.ImmutableMap; -import static java.util.Arrays.asList; import static org.junit.Assert.assertEquals; import static org.zwobble.couscous.ast.AssignmentNode.assign; import static org.zwobble.couscous.ast.AssignmentNode.assignStatement; @@ -45,7 +44,7 @@ public class EvaluatorTests extends BackendEvalTests { Optional.empty(), new StackFrameBuilder().declare(arg, value("[initial value]")).build()); InterpreterValue result = eval(environment, assign(arg, literal("[updated value]"))); - assertEquals(new StringInterpreterValue("[updated value]"), result); + assertEquals(StringInterpreterValue.of("[updated value]"), result); } @Test |
