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
>
>
>

Reply via email to