Hi
> ad 1) no - not even protected is allowed. The problem is that you
> don't want an application to rely on a certain implementation of the
> api - you change the api, and nothing works anymore ;)
>
Ok, thats bad.
> ad 2) yes, well, instanceof to UIData is bad. There I'm completely
> d'accord with Simon. But an instanceof to an interface defining some
> generic behaviour is pretty ok in my opinion. not marker interface
> instead of instanceof, but instanceof to marker interface instead of
> to UIData.
>
Ok, I understand.
There is still one last idea, a little bit complicated, but this avoids
this marker interface too.
You could have a TraversePolicyProvider.
Lets speak code:
TraversePolicyFactroy.register(UIComponent.class, new
TraverseComponentChildren());
TraversePolicyFactroy.register(UIData.class, new TraverseDataChildren());
Then on TraversePolicyFactroy:
TraversePolicy create(UIComponent component)
{
find a TraversePolicy for component.getClass() or one of its super
classes.
return it;
}
Somewhat complicated, but hey it works. Is extensible and didnt need any
change on the api and no marker interface.
Ciao,
Mario