aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-08 21:29:07 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-08 21:29:07 +0000
commit34c97fbce322b16821563a8bafe91a31b4084806 (patch)
tree0be43d6297e30bd46077dd5f9227a0458a319bac /src/main/java/org
parentbf3645905d5384d25b20e572803b6886c476e057 (diff)
Use static constructor for BooleanInterpreterValue
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/BooleanInterpreterValue.java19
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java4
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java7
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/InternalCouscousInterpreterValue.java5
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java2
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java2
6 files changed, 20 insertions, 19 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 03a0289..c94b21d 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/BooleanInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/BooleanInterpreterValue.java
@@ -10,14 +10,23 @@ public final class BooleanInterpreterValue implements InterpreterValue {
public static final BooleanInterpreterValue TRUE = new BooleanInterpreterValue(true);
public static final BooleanInterpreterValue FALSE = new BooleanInterpreterValue(false);
+ public static BooleanInterpreterValue of(final boolean value) {
+ return value ? TRUE : FALSE;
+ }
+
private static final ConcreteType TYPE = ConcreteType.builder(BooleanInterpreterValue.class, "boolean")
- .method("negate", Collections.emptyList(), (environment, arguments) ->
- new BooleanInterpreterValue(!arguments.getReceiver().getValue()))
+ .method("negate", Collections.emptyList(), (environment, arguments) ->
+ of(!arguments.getReceiver().getValue()))
.build();
+
private final boolean value;
-
+
+ private BooleanInterpreterValue(final boolean value) {
+ this.value = value;
+ }
+
public boolean getValue() {
return value;
}
@@ -42,10 +51,6 @@ public final class BooleanInterpreterValue implements InterpreterValue {
throw new NoSuchField(fieldName);
}
- public BooleanInterpreterValue(final boolean value) {
- this.value = value;
- }
-
@java.lang.Override
public boolean equals(final java.lang.Object o) {
if (o == this) return true;
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 cb3172d..228dbb7 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/BoxedIntegerInterpreterValue.java
@@ -39,9 +39,9 @@ public class BoxedIntegerInterpreterValue {
if (right.getType().getName().equals(ObjectValues.BOXED_INT)) {
IntegerInterpreterValue leftValue = (IntegerInterpreterValue)arguments.getReceiver().getField("value");
IntegerInterpreterValue rightValue = (IntegerInterpreterValue)right.getField("value");
- return new BooleanInterpreterValue(leftValue.getValue() == rightValue.getValue());
+ return BooleanInterpreterValue.of(leftValue.getValue() == rightValue.getValue());
} else {
- return new BooleanInterpreterValue(false);
+ return BooleanInterpreterValue.of(false);
}
})
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 4349d5d..5cc14de 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/IntegerInterpreterValue.java
@@ -10,7 +10,6 @@ import org.zwobble.couscous.values.ObjectValues;
import org.zwobble.couscous.values.PrimitiveValue;
import org.zwobble.couscous.values.PrimitiveValues;
-import static java.util.Arrays.asList;
import static org.zwobble.couscous.util.ExtraLists.list;
public final class IntegerInterpreterValue implements InterpreterValue {
@@ -31,7 +30,7 @@ public final class IntegerInterpreterValue implements InterpreterValue {
if (right instanceof IntegerInterpreterValue) {
return integerEquals(arguments, ((IntegerInterpreterValue)right));
} else {
- return new BooleanInterpreterValue(false);
+ return BooleanInterpreterValue.of(false);
}
})
.method(Operator.EQUALS.getMethodName(), list(IntegerValue.REF),
@@ -52,7 +51,7 @@ public final class IntegerInterpreterValue implements InterpreterValue {
.build();
private static BooleanInterpreterValue integerEquals(MethodCallArguments<IntegerInterpreterValue> arguments, IntegerInterpreterValue right) {
- return new BooleanInterpreterValue(arguments.getReceiver().getValue() == right.getValue());
+ return BooleanInterpreterValue.of(arguments.getReceiver().getValue() == right.getValue());
}
private static
@@ -64,7 +63,7 @@ public final class IntegerInterpreterValue implements InterpreterValue {
private static
BiFunction<Environment, MethodCallArguments<IntegerInterpreterValue>, InterpreterValue>
infixReturningBoolean(BiFunction<Integer, Integer, Boolean> func) {
- return infix((left, right) -> new BooleanInterpreterValue(func.apply(left, right)));
+ return infix((left, right) -> BooleanInterpreterValue.of(func.apply(left, right)));
}
private static
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/InternalCouscousInterpreterValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/InternalCouscousInterpreterValue.java
index 023dec7..75f8af4 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/InternalCouscousInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/InternalCouscousInterpreterValue.java
@@ -1,17 +1,14 @@
package org.zwobble.couscous.interpreter.values;
-import org.zwobble.couscous.values.BooleanValue;
-import org.zwobble.couscous.values.IntegerValue;
import org.zwobble.couscous.values.ObjectValues;
-import static java.util.Arrays.asList;
import static org.zwobble.couscous.util.ExtraLists.list;
public class InternalCouscousInterpreterValue {
public static final ConcreteType TYPE = ConcreteType.classBuilder("_couscous")
.staticMethod("same", list(ObjectValues.OBJECT, ObjectValues.OBJECT),
(environment, arguments) ->
- new BooleanInterpreterValue(arguments.get(0) == arguments.get(1)))
+ BooleanInterpreterValue.of(arguments.get(0) == arguments.get(1)))
.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 14d1085..6b9d0b5 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/InterpreterValues.java
@@ -34,7 +34,7 @@ public class InterpreterValues {
@Override
public InterpreterValue visit(BooleanValue value) {
- return new BooleanInterpreterValue(value.getValue());
+ return BooleanInterpreterValue.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 3aaa073..ff2617e 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
@@ -29,7 +29,7 @@ public final class StringInterpreterValue implements InterpreterValue {
.method("equals", list(ObjectValues.OBJECT), (environment, arguments) -> {
InterpreterValue right = arguments.get(0);
if (right instanceof StringInterpreterValue) {
- return new BooleanInterpreterValue(arguments.getReceiver().value.equals(((StringInterpreterValue)right).value));
+ return BooleanInterpreterValue.of(arguments.getReceiver().value.equals(((StringInterpreterValue)right).value));
} else {
return InterpreterValues.FALSE;
}