Make Component. 'protected List<IBehavior> getBehaviors(Class<? extends 
IBehavior>' public
------------------------------------------------------------------------------------------

                 Key: WICKET-2115
                 URL: https://issues.apache.org/jira/browse/WICKET-2115
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 1.4-RC2
            Reporter: Martin Funk


actually making getbehaviors(class) public will also break code
because any override already in place will then attempt to reduce the
visibility of the method.

add a jira issue, most likely for 1.5 considering 1.4 is already in RC2.

-igor

On Thu, Feb 19, 2009 at 1:24 PM, Martin Funk <[email protected]> wrote:
Hi,

why is Components

      public final List<IBehavior> getBehaviors()
public

and why is

      protected List<IBehavior> getBehaviors(Class<? extends IBehavior>
type)
protected?

For example for a Behavior I'd like it to be able to tell if an Behavior of
its type is already bound to that component.

In its bind() method I'd like to do something like:
              if (component.getBehaviors(SomeBehavior.class).size() > 1) {
                      throw new Error("Ther may only be one");
              }

But I have to do something like:
              for (IBehavior behavior : component.getBehaviors()) {
                      if (behavior instanceof SomeBehavior) {
                              throw new Error("There may only be one");
                      }
              }

So my whish would be to have em both public. I wouldn't mind seeing em both
final, but that might break existing code.

mf




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to