Author: simoneg
Date: Thu Nov 19 12:45:08 2009
New Revision: 882130

URL: http://svn.apache.org/viewvc?rev=882130&view=rev
Log:
Find overridden method independently of type parameters, to better support 
crappy generics

Modified:
    
labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/AbstractListCrud.java

Modified: 
labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/AbstractListCrud.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/AbstractListCrud.java?rev=882130&r1=882129&r2=882130&view=diff
==============================================================================
--- 
labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/AbstractListCrud.java
 (original)
+++ 
labs/magma/trunk/website-administration/src/main/java/org/apache/magma/website/admin/AbstractListCrud.java
 Thu Nov 19 12:45:08 2009
@@ -39,7 +39,7 @@
        
        public HtmlProducer doShow() {          
                String listlink = null;
-               if (isOverridden(AbstractListCrud.class, "doShowSub", 
property.getCollectionClass())) {
+               if (isOverridden(AbstractListCrud.class, "doShowSub")) {
                        listlink = "doShowSub";
                }
                ShowList sl = new ShowList(property.getCollectionClass(), 
(Collection)bean.handler().getValue(propertyName), listlink);
@@ -73,17 +73,24 @@
        }
 
        
-       protected boolean isOverridden(Class<?> me, String methodName, 
Class<?>... params) {
+       protected boolean isOverridden(Class<?> me, String methodName) {
                Class<?> realclass = getClass();
                Method m = null;
                try {
-                       m = realclass.getMethod(methodName, params);
+                       Method[] methods = realclass.getMethods();
+                       for (Method method : methods) {
+                               if (method.getName().equals(methodName)) {
+                                       Class<?> decin = m.getDeclaringClass();
+                                       if (!decin.equals(me)) {
+                                               if (me.isAssignableFrom(decin)) 
{
+                                                       m = method;
+                                               }
+                                       }
+                               }
+                       }
                } catch (Exception e) {
                        return false;
                }
-               if (m == null) return false;
-               Class<?> decin = m.getDeclaringClass();
-               if (decin.equals(me)) return false;
-               return me.isAssignableFrom(decin);
+               return m != null;
        }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to