Hi Semyon,

On 30/06/2017 17:45, Semyon Sadetsky wrote:
I would change the spec to

+ * @return the <code>ButtonGroup</code> that the button belongs to or null otherwise

Because if the getter returns null the button doesn't actually belong to any group, and this is true for both legacy and after implementations.
But the current spec looks ok to me as well.

FYI: this sentence contains the logical mistake that I could see users falling for. A legacy ButtonModel may continue to hold a non-null ButtonGroup reference and implement its behaviour accordingly: that it is now in a group. A caller that assumes getGroup() == null means _only_ that the model is not in a group would be mislead. Occasionally callers might need to handle the legacy case to ensure everything behaves consistently - such as by maintaining their own reference to the ButtonGroup externally. But I accept the need to distinguish would be seldom.

I'm sorry I was not able to describe this better in my earlier emails - only by discussing it I reached clarity on what initially "bugged" me about the default implementation myself.

Anyway, I will leave this thought with you.

Kind regards,
Luke

Reply via email to