aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-06 07:48:18 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-06 07:48:18 +0000
commit5eafcf8cb10546916d4b38c3208ebfdfafff93e4 (patch)
tree1b2044adf679abace8f88a89fafba30d187b04a7 /src/main/java
parent75dfdbb77df12ceb50e4c4548e797f2001b3a770 (diff)
Tidy up ConcreteType.fromNode
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/ConcreteType.java34
1 files changed, 20 insertions, 14 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/ConcreteType.java b/src/main/java/org/zwobble/couscous/interpreter/values/ConcreteType.java
index c053739..157bb41 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/ConcreteType.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/ConcreteType.java
@@ -72,20 +72,26 @@ public class ConcreteType {
}
public static ConcreteType fromNode(ClassNode classNode) {
- final java.util.Map<String, FieldValue> fields = classNode.getFields().stream().collect(toMap(field -> field.getName(), field -> new FieldValue(field.getName(), field.getType())));
- final org.zwobble.couscous.interpreter.values.MethodValue constructor = new MethodValue(getArgumentTypes(classNode.getConstructor().getArguments()), (environment, arguments) -> Executor.callMethod(environment, classNode.getConstructor(), Optional.of(arguments.getReceiver()), arguments.getPositionalArguments()));
- final java.util.Map<String, MethodValue> methods = classNode.getMethods().stream().filter(method -> !method.isStatic()).collect(toMap(method -> method.getName(), method -> {
- List<TypeName> argumentTypes = getArgumentTypes(method.getArguments());
- return new MethodValue(argumentTypes, (environment, arguments) -> {
- return Executor.callMethod(environment, method, Optional.of(arguments.getReceiver()), arguments.getPositionalArguments());
- });
- }));
- final java.util.Map<String, StaticMethodValue> staticMethods = classNode.getMethods().stream().filter(method -> method.isStatic()).collect(toMap(method -> method.getName(), method -> {
- List<TypeName> argumentTypes = getArgumentTypes(method.getArguments());
- return new StaticMethodValue(argumentTypes, (environment, arguments) -> {
- return Executor.callMethod(environment, method, Optional.empty(), arguments);
- });
- }));
+ Map<String, FieldValue> fields = classNode.getFields().stream().collect(toMap(field -> field.getName(), field -> new FieldValue(field.getName(), field.getType())));
+ MethodValue constructor = new MethodValue(getArgumentTypes(classNode.getConstructor().getArguments()), (environment, arguments) -> Executor.callMethod(environment, classNode.getConstructor(), Optional.of(arguments.getReceiver()), arguments.getPositionalArguments()));
+ Map<String, MethodValue> methods = classNode.getMethods()
+ .stream()
+ .filter(method -> !method.isStatic())
+ .collect(toMap(method -> method.getName(), method -> {
+ List<TypeName> argumentTypes = getArgumentTypes(method.getArguments());
+ return new MethodValue(argumentTypes, (environment, arguments) -> {
+ return Executor.callMethod(environment, method, Optional.of(arguments.getReceiver()), arguments.getPositionalArguments());
+ });
+ }));
+ Map<String, StaticMethodValue> staticMethods = classNode.getMethods()
+ .stream()
+ .filter(method -> method.isStatic())
+ .collect(toMap(method -> method.getName(), method -> {
+ List<TypeName> argumentTypes = getArgumentTypes(method.getArguments());
+ return new StaticMethodValue(argumentTypes, (environment, arguments) -> {
+ return Executor.callMethod(environment, method, Optional.empty(), arguments);
+ });
+ }));
return new ConcreteType(classNode.getName(), classNode.getSuperTypes(), fields, constructor, methods, staticMethods);
}