Author: jdonnerstag
Date: Wed Apr 15 17:33:15 2009
New Revision: 765276

URL: http://svn.apache.org/viewvc?rev=765276&view=rev
Log:
changed generics of Component.getBehaviors(Class)

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=765276&r1=765275&r2=765276&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java 
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Wed Apr 
15 17:33:15 2009
@@ -1322,7 +1322,7 @@
         */
        public final List<IBehavior> getBehaviors()
        {
-               return getBehaviors(null);
+               return getBehaviors(IBehavior.class);
        }
 
        /**
@@ -3608,11 +3608,13 @@
         * 
         * @param type
         *            The type or null for all
-        * 
         * @return The subset of the currently coupled behaviors that are of 
the provided type as a
         *         unmodifiable list or null
+        * @param <M>
+        *            A class derived from IBehavior
         */
-       protected List<IBehavior> getBehaviors(Class<? extends IBehavior> type)
+       @SuppressWarnings("unchecked")
+       protected <M extends IBehavior> List<M> getBehaviors(Class<M> type)
        {
                List<IBehavior> behaviors = getBehaviorsRawList();
                if (behaviors == null)
@@ -3620,13 +3622,19 @@
                        return Collections.emptyList();
                }
 
-               List<IBehavior> subset = new 
ArrayList<IBehavior>(behaviors.size()); // avoid growing
-               for (Iterator<IBehavior> i = behaviors.iterator(); i.hasNext();)
+               List<M> subset = new ArrayList<M>(behaviors.size()); // avoid 
growing
+               for (IBehavior behavior : behaviors)
                {
-                       Object behavior = i.next();
-                       if (behavior != null && (type == null || 
type.isAssignableFrom(behavior.getClass())))
+                       if (behavior != null)
                        {
-                               subset.add((IBehavior)behavior);
+                               if (type == null)
+                               {
+                                       subset.add((M)behavior);
+                               }
+                               else if 
(type.isAssignableFrom(behavior.getClass()))
+                               {
+                                       subset.add(type.cast(behavior));
+                               }
                        }
                }
                return Collections.unmodifiableList(subset);


Reply via email to