aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-25 19:18:09 +0000
committerMichael Williamson <mike@zwobble.org>2015-10-25 19:34:44 +0000
commit368f2dd010defaf5f4b6deb70f45285cee8f244d (patch)
tree55494f85341f23dd1e588fa070ef863ef7cfdef5 /src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
parent060ae04a695df6abac7445df3c5394b59da40f41 (diff)
Remove lombok
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.java72
1 files changed, 45 insertions, 27 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 15bde43..42ee713 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/StringInterpreterValue.java
@@ -1,53 +1,71 @@
package org.zwobble.couscous.interpreter.values;
import java.util.Optional;
-
import org.zwobble.couscous.interpreter.NoSuchField;
import org.zwobble.couscous.values.IntegerValue;
import org.zwobble.couscous.values.PrimitiveValue;
import org.zwobble.couscous.values.PrimitiveValues;
import org.zwobble.couscous.values.StringValue;
-
import static java.util.Arrays.asList;
-import lombok.Value;
-import lombok.val;
-
-@Value
-public class StringInterpreterValue implements InterpreterValue {
- public static final ConcreteType TYPE = ConcreteType.builder(StringInterpreterValue.class, StringValue.REF)
- .method("length", asList(),
- (environment, arguments) ->
- new IntegerInterpreterValue(arguments.getReceiver().value.length()))
-
- .method("substring", asList(IntegerValue.REF, IntegerValue.REF),
- (environment, arguments) -> {
- val startIndex = (IntegerInterpreterValue)arguments.get(0);
- val endIndex = (IntegerInterpreterValue)arguments.get(1);
- return new StringInterpreterValue(arguments.getReceiver().value.substring(startIndex.getValue(), endIndex.getValue()));
- })
-
- .build();
-
- String value;
-
+public final class StringInterpreterValue implements InterpreterValue {
+ public static final ConcreteType TYPE = ConcreteType.builder(StringInterpreterValue.class, StringValue.REF).method("length", asList(), (environment, arguments) -> new IntegerInterpreterValue(arguments.getReceiver().value.length())).method("substring", asList(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()));
+ }).build();
+ private final String value;
+
@Override
public ConcreteType getType() {
return TYPE;
}
-
+
@Override
public Optional<PrimitiveValue> toPrimitiveValue() {
return Optional.of(PrimitiveValues.value(value));
}
-
+
@Override
public InterpreterValue getField(String fieldName) {
throw new NoSuchField(fieldName);
}
-
+
@Override
public void setField(String fieldName, InterpreterValue value) {
throw new NoSuchField(fieldName);
}
-}
+
+ public StringInterpreterValue(final String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return this.value;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object o) {
+ if (o == this) return true;
+ if (!(o instanceof StringInterpreterValue)) return false;
+ final StringInterpreterValue other = (StringInterpreterValue)o;
+ final java.lang.Object this$value = this.getValue();
+ final java.lang.Object other$value = other.getValue();
+ if (this$value == null ? other$value != null : !this$value.equals(other$value)) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ final java.lang.Object $value = this.getValue();
+ result = result * PRIME + ($value == null ? 43 : $value.hashCode());
+ return result;
+ }
+
+ @java.lang.Override
+ public java.lang.String toString() {
+ return "StringInterpreterValue(value=" + this.getValue() + ")";
+ }
+} \ No newline at end of file