Hello,

I would like to do a public API change to Icon's renderIcon method and its
dependencies. Currently the signature is

abstract public void renderIcon(
    FacesContext        context,
    RenderingContext    arc,
    Map<String, Object> attrs
    ) throws IOException;

I would like to change that to the following to make it easier to call
because of non covariance of generic collections.

abstract public void renderIcon(
    FacesContext        context,
    RenderingContext    arc,
    Map<String, ? extends Object> attrs
    ) throws IOException;

I don't think it'll break anything as it's a generalization of the previous
signature, meaning all old code should still be able to call the method
without any change. The only implication is that renderIcon and its
dependencies will no longer be able to alter the map since it's quite
impossible to add an element to a collection containing a wildcard. It's not
in the method contract to alter the attribute map though, so it should not
be an issue. However, as it's a public API change, I preferred to ask on the
mailing list in case I oversaw something.


Regards,

~ Simon

Reply via email to