aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/values
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-06 17:50:34 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-06 17:50:34 +0100
commitbb9bd25ef93d06deda2c293f01b3a3cdb769c10c (patch)
tree07724fbd6372bc5f37a6589178173ed64653b272 /src/main/java/org/zwobble/couscous/interpreter/values
parentab650e9888794cb7783fb8ffd80c41d91daca017 (diff)
Add setField to InterpreterValue interface
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/values')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/BooleanInterpreterValue.java5
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java5
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValue.java1
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java1
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java5
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/UnitInterpreterValue.java5
6 files changed, 22 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/BooleanInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/BooleanInterpreterValue.java
index 06e8bee..7bb108c 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/BooleanInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/BooleanInterpreterValue.java
@@ -36,4 +36,9 @@ public class BooleanInterpreterValue implements InterpreterValue {
public InterpreterValue getField(String fieldName) {
throw new NoSuchField(fieldName);
}
+
+ @Override
+ public void setField(String fieldName, InterpreterValue value) {
+ throw new NoSuchField(fieldName);
+ }
}
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java
index 1effe6a..95b05aa 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java
@@ -40,4 +40,9 @@ public class IntegerInterpreterValue implements InterpreterValue {
public InterpreterValue getField(String fieldName) {
throw new NoSuchField(fieldName);
}
+
+ @Override
+ public void setField(String fieldName, InterpreterValue value) {
+ throw new NoSuchField(fieldName);
+ }
}
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValue.java
index 78d27d2..e02387b 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValue.java
@@ -8,4 +8,5 @@ public interface InterpreterValue {
ConcreteType getType();
Optional<PrimitiveValue> toPrimitiveValue();
InterpreterValue getField(String fieldName);
+ void setField(String fieldName, InterpreterValue value);
}
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 03e8061..b248398 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/ObjectInterpreterValue.java
@@ -40,6 +40,7 @@ public class ObjectInterpreterValue implements InterpreterValue {
}
}
+ @Override
public void setField(String fieldName, InterpreterValue value) {
val field = type.getField(fieldName).orElseThrow(() -> new NoSuchField(fieldName));
InterpreterTypes.checkIsInstance(field.getType(), value);
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 a4dde19..15bde43 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
@@ -45,4 +45,9 @@ public class StringInterpreterValue implements InterpreterValue {
public InterpreterValue getField(String fieldName) {
throw new NoSuchField(fieldName);
}
+
+ @Override
+ public void setField(String fieldName, InterpreterValue value) {
+ throw new NoSuchField(fieldName);
+ }
}
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/UnitInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/UnitInterpreterValue.java
index e221fee..1c184a4 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/UnitInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/UnitInterpreterValue.java
@@ -32,4 +32,9 @@ public class UnitInterpreterValue implements InterpreterValue {
public InterpreterValue getField(String fieldName) {
throw new NoSuchField(fieldName);
}
+
+ @Override
+ public void setField(String fieldName, InterpreterValue value) {
+ throw new NoSuchField(fieldName);
+ }
}