aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java18
1 files changed, 11 insertions, 7 deletions
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;
}