diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-06 07:48:18 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-06 07:48:18 +0000 |
| commit | 5eafcf8cb10546916d4b38c3208ebfdfafff93e4 (patch) | |
| tree | 1b2044adf679abace8f88a89fafba30d187b04a7 /src/main | |
| parent | 75dfdbb77df12ceb50e4c4548e797f2001b3a770 (diff) | |
Tidy up ConcreteType.fromNode
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/interpreter/values/ConcreteType.java | 34 |
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); } |
