[
https://issues.apache.org/jira/browse/HTTPCORE-620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17005328#comment-17005328
]
Gary D. Gregory commented on HTTPCORE-620:
------------------------------------------
There is existing logic where states are compared, in what looks like "is this
state before that one" kind of logic. Since it is a no-no to use an enum's
ordinal value for this purpose, I refactored the int values as a rank field.
This could probably be better abstracted without making the rank field public
but I wanted a simple port at first.
We can revisit later if we want to add methods like
Status#isBefore(Status)/Status#isAfter(Status) but I am not sure how much that
would improve readability.
> Refactor int constants from org.apache.hc.core5.reactor.IOSession into an enum
> ------------------------------------------------------------------------------
>
> Key: HTTPCORE-620
> URL: https://issues.apache.org/jira/browse/HTTPCORE-620
> Project: HttpComponents HttpCore
> Issue Type: Improvement
> Components: HttpCore
> Reporter: Gary D. Gregory
> Priority: Major
>
> Refactor int constants from {{org.apache.hc.core5.reactor.IOSession}} into an
> enum called state:
> * {color:#500050}int
> org.apache.hc.core5.reactor.IO{color}{color:#500050}Session.ACTIVE{color}
> * {color:#500050}int
> org.apache.hc.core5.reactor.IO{color}{color:#500050}Session.CLOSED{color}
> * {color:#500050}int
> org.apache.hc.core5.reactor.IO{color}{color:#500050}Session.CLOSING{color}
> Like:
> {code:java}
> public interface IOSession extends ByteChannel, SocketModalCloseable,
> Identifiable {
> public enum Status {
> ACTIVE(0),
> CLOSING(1),
> CLOSED(Integer.MAX_VALUE);
> private Status(final int rank) {
> this.rank = rank;
> }
> public final int rank;
> }
> ...
> {code}
> PR coming...
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]