aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-08 21:11:42 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-08 21:11:42 +0000
commit785907ae2284350e0091e903825f2f717a9c29cc (patch)
treeeb051f710fa25311b22cfb2187fa6e80c1cf3953 /src/main
parent7638649357e9cc2c339e743dc84b5249c6cdc0de (diff)
Replace constructor with StringInterpreterValue with static constructor
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java3
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java4
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java18
3 files changed, 14 insertions, 11 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;
}