Am 2020-01-01 um 14:29 schrieb Oleg Kalnichevski:
On Tue, 2019-12-31 at 21:55 +0100, Michael Osipov wrote:
Am 2019-12-31 um 21:14 schrieb Oleg Kalnichevski:
On Tue, 2019-12-31 at 15:10 -0500, Gary Gregory wrote:
This is -1 from me, as this a classic anti-pattern: You are using
the
enum's ordinal value for sorting :-(
I am guessing Micheal will also recognize this from Effective
Java's
guidelines "Never derive a value associated with an enum from its
ordinal;
store it in an instance field instead".
Guess what happens if you change the order of the enum values in
the
source? Everything breaks.
Please revert.
I will revert this commit as long as I can also revert your
previous
commit if that is OK with you.
Let's calm down for a moment.
That's a hard nut to crack:
I just got the book out of my shelf, item 31 says don't rely on
#ordinal() or don't use it directly.
#compareTo() makes indirect use, granted. What about a comprise:
Since this is only three value enum, used primarily internally
(hence
the @Internal). It is OK to rely on the physical order if AND ONLY
if
there is a decent comment that the order must be retained.
Exactly the same equally applies to ranking in the original change-set.
But I tend to agree with Gary, if that would be a more complex,
public
facing enum, relying on #ordinal() would be clearly a no-go.
The purpose of replacing static ints with an enum is described in
item
30 to give the lib programmer full control over the type, instead of
relying on a general purpose type like it which can have any value.
@Oleg, I'd be fine if you would add a comment to that enum.
The logical sequence {ACTIVE, CLOSING, CLOSED} sounds pretty self-
explanatory, but I added a comment to that effect per your request
https://github.com/apache/httpcomponents-core/commit/8511b22e0776e63a66871a4bed512f289b004b51#diff-02c5f2fb7be4163f79bc0db4642ee2c6R58
This perfectly fine!
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]