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