aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-11-21 19:31:45 +0000
committerMichael Williamson <mike@zwobble.org>2015-11-21 19:31:45 +0000
commit582c08939db030e84a47325e2d36197f9ef433a9 (patch)
treeb081a7eaae56fad72d1cba9cfd4d8b4ba6e40980 /src/main
parent3da09a0306e69ceec6c6c1c4da8240736075b131 (diff)
Use same code to read body of anonymous and named classes
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java2
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java16
2 files changed, 5 insertions, 13 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
index 37a167c..11fa612 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaExpressionReader.java
@@ -196,7 +196,7 @@ public class JavaExpressionReader {
if (constructor.getDeclaringClass().isAnonymous()) {
// TODO: generate anonymous class name
TypeName anonymousClassName = TypeName.of("ANONYMOUS");
- classes.add(javaReader.readTypeDeclaration("ANONYMOUS", expression.getAnonymousClassDeclaration()));
+ classes.add(javaReader.readTypeDeclarationBody("ANONYMOUS", expression.getAnonymousClassDeclaration().bodyDeclarations()));
return constructorCall(anonymousClassName, arguments);
} else {
return constructorCall(typeOf(expression), arguments);
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
index 70f9c3d..0eb5817 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -12,7 +12,6 @@ import java.nio.file.Path;
import java.util.List;
import java.util.Optional;
-import static java.util.Arrays.asList;
import static org.zwobble.couscous.frontends.java.JavaTypes.typeOf;
import static org.zwobble.couscous.util.ExtraLists.cons;
import static org.zwobble.couscous.util.ExtraLists.ofType;
@@ -33,20 +32,13 @@ public class JavaReader {
private ClassNode readCompilationUnit(CompilationUnit ast) {
String name = generateClassName(ast);
TypeDeclaration type = (TypeDeclaration)ast.types().get(0);
- return readTypeDeclaration(name, type);
+ return readTypeDeclarationBody(name, type.bodyDeclarations());
}
- ClassNode readTypeDeclaration(String name, AnonymousClassDeclaration type) {
+ ClassNode readTypeDeclarationBody(String name, List bodyDeclarations) {
ClassNodeBuilder classBuilder = new ClassNodeBuilder(name);
- readFields(ofType(type.bodyDeclarations(), FieldDeclaration.class), classBuilder);
- readMethods(ofType(type.bodyDeclarations(), MethodDeclaration.class), classBuilder);
- return classBuilder.build();
- }
-
- ClassNode readTypeDeclaration(String name, TypeDeclaration type) {
- ClassNodeBuilder classBuilder = new ClassNodeBuilder(name);
- readFields(asList(type.getFields()), classBuilder);
- readMethods(asList(type.getMethods()), classBuilder);
+ readFields(ofType(bodyDeclarations, FieldDeclaration.class), classBuilder);
+ readMethods(ofType(bodyDeclarations, MethodDeclaration.class), classBuilder);
return classBuilder.build();
}