I wrote a class with chainable setters. Was told to either move the chainable methods into its own class, or remove the chainable methods and make the setters return void.
The only reasoning that seemed reasonable to me, is that a Java bean is well defined standard and by having chainable setters, I no longer have a java bean.
Other arguments were made too on the basis of robustness, but I was not convinced by this, since all I could see, was a class of chaininable methods calling the same methods on a class without chainable methods, resulting in layer of code that does nothing right now.
But being language agnostic here, where would you draw the line? Is it an absolute black/white issue? Logic always separate from the data its on? Are there guidelines about when/where/why to make the split?
What are your opinions on this?