From 1f98f72e77355254cfe33642baff9d85d6dcd089 Mon Sep 17 00:00:00 2001 From: George Gastaldi Date: Mon, 7 Apr 2014 11:56:26 -0300 Subject: [PATCH] ROASTER-5: Added addParameter(JavaType, String) method --- .../jboss/forge/roaster/model/source/MethodSource.java | 5 +++++ .../org/jboss/forge/roaster/model/impl/MethodImpl.java | 6 ++++++ .../forge/test/roaster/model/JavaClassMethodTest.java | 10 ++++++++++ 3 files changed, 21 insertions(+) diff --git a/api/src/main/java/org/jboss/forge/roaster/model/source/MethodSource.java b/api/src/main/java/org/jboss/forge/roaster/model/source/MethodSource.java index 688dfc70..d6ef1cf7 100644 --- a/api/src/main/java/org/jboss/forge/roaster/model/source/MethodSource.java +++ b/api/src/main/java/org/jboss/forge/roaster/model/source/MethodSource.java @@ -95,6 +95,11 @@ public interface MethodSource> extends Method addParameter(String type, String name); + /** + * Add a parameter with the specified {@link JavaType} type and name to this method + */ + ParameterSource addParameter(JavaType type, String name); + /** * Remove a parameter from this method */ diff --git a/impl/src/main/java/org/jboss/forge/roaster/model/impl/MethodImpl.java b/impl/src/main/java/org/jboss/forge/roaster/model/impl/MethodImpl.java index b5404501..7b6557e8 100644 --- a/impl/src/main/java/org/jboss/forge/roaster/model/impl/MethodImpl.java +++ b/impl/src/main/java/org/jboss/forge/roaster/model/impl/MethodImpl.java @@ -653,6 +653,12 @@ public ParameterSource addParameter(Class type, String name) return addParameter(type.getName(), name); } + @Override + public ParameterSource addParameter(JavaType type, String name) + { + return addParameter(type.getQualifiedName(), name); + } + @SuppressWarnings("unchecked") @Override public ParameterSource addParameter(String type, String name) diff --git a/impl/src/test/java/org/jboss/forge/test/roaster/model/JavaClassMethodTest.java b/impl/src/test/java/org/jboss/forge/test/roaster/model/JavaClassMethodTest.java index 0c084f03..5f8c14a2 100644 --- a/impl/src/test/java/org/jboss/forge/test/roaster/model/JavaClassMethodTest.java +++ b/impl/src/test/java/org/jboss/forge/test/roaster/model/JavaClassMethodTest.java @@ -142,6 +142,16 @@ public void testAddParameterStringType() throws Exception Assert.assertEquals(3, method.getParameters().size()); } + @Test + public void testAddParameterJavaType() throws Exception + { + JavaClassSource type = Roaster.create(JavaClassSource.class).setName("Mock").setPackage("mock.pkg"); + ParameterSource param = method.addParameter(type, "mock"); + Assert.assertNotNull(param); + Assert.assertEquals(3, method.getParameters().size()); + Assert.assertTrue(method.getOrigin().hasImport(type)); + } + @Test public void testRemoveParameter() throws Exception {