diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-10-06 16:24:37 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-10-06 16:24:37 +0100 |
| commit | e6f463257720bee91a1b4954d97684dbb3398cbf (patch) | |
| tree | c8d1f04dfe8928d33361108aefee7e7572dae1c7 /src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java | |
| parent | 9685c8fb7fa14d5b75d828f8443dd948715ac4af (diff) | |
Add support for constructors and fields
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java index 4383353..acb6ef7 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java +++ b/src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java @@ -1,14 +1,18 @@ package org.zwobble.couscous.interpreter.values; +import java.util.HashMap; +import java.util.Map; import java.util.Optional; import org.zwobble.couscous.values.PrimitiveValue; public class ObjectInterpreterValue implements InterpreterValue { private final ConcreteType type; + private final Map<String, InterpreterValue> fields; public ObjectInterpreterValue(ConcreteType type) { this.type = type; + this.fields = new HashMap<>(); } @Override @@ -20,4 +24,17 @@ public class ObjectInterpreterValue implements InterpreterValue { public Optional<PrimitiveValue> toPrimitiveValue() { return Optional.empty(); } + + @Override + public InterpreterValue getField(String fieldName) { + if (fields.containsKey(fieldName)) { + return fields.get(fieldName); + } else { + throw new UnsupportedOperationException(); + } + } + + public void setField(String fieldName, InterpreterValue value) { + fields.put(fieldName, value); + } } |
