aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/frontends
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-20 19:00:49 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-20 19:00:49 +0100
commit4054a250df414bb2c756d12b133aaaa8cd6bbce3 (patch)
treec7c1951aa372a3d1846cb06dfa1fc3f721c0e6ef /src/main/java/org/zwobble/couscous/frontends
parent4655cf0dc523484a05f4b648fd87ff9fdd0605ca (diff)
Java: read formal method arguments
Diffstat (limited to 'src/main/java/org/zwobble/couscous/frontends')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java13
1 files changed, 13 insertions, 0 deletions
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 b8a3b62..22d42ab 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -22,6 +22,7 @@ import org.eclipse.jdt.core.dom.Modifier;
import org.eclipse.jdt.core.dom.NumberLiteral;
import org.eclipse.jdt.core.dom.ReturnStatement;
import org.eclipse.jdt.core.dom.SimpleName;
+import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
import org.eclipse.jdt.core.dom.Statement;
import org.eclipse.jdt.core.dom.StringLiteral;
import org.eclipse.jdt.core.dom.ThisExpression;
@@ -102,6 +103,14 @@ public class JavaReader {
method.getName().getIdentifier(),
true,
builder -> {
+ for (Object parameterObject : method.parameters()) {
+ val parameter = (SingleVariableDeclaration)parameterObject;
+ builder.argument(
+ parameter.resolveBinding().getKey(),
+ parameter.getName().getIdentifier(),
+ typeOf(parameter.resolveBinding()));
+ }
+
for (Object statement : method.getBody().statements()) {
for (StatementNode intermediateStatement : readStatement((Statement)statement)) {
builder.statement(intermediateStatement);
@@ -282,6 +291,10 @@ public class JavaReader {
return typeOf(expression.resolveTypeBinding());
}
+ private static TypeName typeOf(IVariableBinding variableBinding) {
+ return typeOf(variableBinding.getType());
+ }
+
private static TypeName typeOf(ITypeBinding typeBinding) {
return TypeName.of(typeBinding.getQualifiedName());
}