From d78978afce4d09372d4eb43a0935f6a7fa7576ce Mon Sep 17 00:00:00 2001 From: vfcosta Date: Fri, 23 Aug 2013 09:40:26 -0300 Subject: [PATCH] Ajuste para considerar uma hierarquia de qualquer tamanho para classes que herdam de DelegateCrud --- impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Reflections.java | 2 +- impl/core/src/test/java/br/gov/frameworkdemoiselle/util/ReflectionsTest.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Reflections.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Reflections.java index 507618a..d1128b5 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Reflections.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Reflections.java @@ -58,7 +58,7 @@ public final class Reflections { try { paramType = (ParameterizedType) type; } catch (ClassCastException cause) { - paramType = (ParameterizedType) ((Class) type).getGenericSuperclass(); + return getGenericTypeArgument((Class) type, idx); } return (Class) paramType.getActualTypeArguments()[idx]; diff --git a/impl/core/src/test/java/br/gov/frameworkdemoiselle/util/ReflectionsTest.java b/impl/core/src/test/java/br/gov/frameworkdemoiselle/util/ReflectionsTest.java index f1952ff..842850b 100644 --- a/impl/core/src/test/java/br/gov/frameworkdemoiselle/util/ReflectionsTest.java +++ b/impl/core/src/test/java/br/gov/frameworkdemoiselle/util/ReflectionsTest.java @@ -56,6 +56,12 @@ public class ReflectionsTest { assertEquals(Long.class, Reflections.getGenericTypeArgument(members[0], 0)); assertEquals(String.class, Reflections.getGenericTypeArgument(members[1], 0)); } + + @Test + public void testGetGenericTypeArgumentClassMultipleChildren() { + assertEquals(Long.class, Reflections.getGenericTypeArgument(OtherClass3.class, 0)); + assertEquals(String.class, Reflections.getGenericTypeArgument(OtherClass3.class, 1)); + } } class SomeClass { @@ -71,3 +77,11 @@ class OtherClass extends SomeClass { public Class text; } + +class OtherClass2 extends OtherClass { + +} + +class OtherClass3 extends OtherClass2 { + +} -- libgit2 0.21.2