diff options
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java | 23 |
1 files changed, 23 insertions, 0 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 3ffa244..9bf6a51 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java @@ -8,6 +8,16 @@ import org.zwobble.couscous.values.StringValue; import static java.util.Arrays.asList; public class BoxedIntegerInterpreterValue { + public static ObjectInterpreterValue of(int value) { + return of(new IntegerInterpreterValue(value)); + } + + public static ObjectInterpreterValue of(IntegerInterpreterValue value) { + ObjectInterpreterValue obj = new ObjectInterpreterValue(TYPE); + obj.setField("value", value); + return obj; + } + public static final ConcreteType TYPE = ConcreteType.classBuilder("java.lang.Integer") .field("value", IntegerValue.REF) @@ -17,6 +27,12 @@ public class BoxedIntegerInterpreterValue { return new IntegerInterpreterValue(Integer.parseInt(value.getValue())); }) + .staticMethod("valueOf", asList(IntegerValue.REF), + (environment, arguments) -> { + IntegerInterpreterValue value = (IntegerInterpreterValue)arguments.get(0); + return of(value); + }) + .method(Operator.EQUALS.getMethodName(), asList(ObjectValues.OBJECT), (environment, arguments) -> { InterpreterValue right = arguments.getPositionalArguments().get(0); @@ -28,5 +44,12 @@ public class BoxedIntegerInterpreterValue { return new BooleanInterpreterValue(false); } }) + + .method("toString", asList(), + (environment, arguments) -> { + IntegerInterpreterValue value = (IntegerInterpreterValue)arguments.getReceiver().getField("value"); + return new StringInterpreterValue(Integer.toString(value.getValue())); + }) + .build(); } |
