Details
-
Improvement
-
Status: In Progress
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Kind.scala, SessionState.scala and StatementState.java don't include a method for string validation. It might be very useful to verify if some string can be converted to an enum type.
For example, to parse JSON string we need to write something like this (to prevent IllegalStateException):
Try { value match { case JsString(state) => SessionState(state) case _ => throw MyException } } match { case Success(state) => state case Failure(ex) => throw MyException }
it can be simplified to:
value match { case JsString(state) if SessionState.isValid(state) => SessionState(state) case _ => throw MyException }
The second problem is StatementState.java enum use Pascal case instead of upper case
https://github.com/apache/incubator-livy/blob/412ccc8fcf96854fedbe76af8e5a6fec2c542d25/rsc/src/main/java/org/apache/livy/rsc/driver/StatementState.java#L26
For example, Waiting instead of WAITING. This isn't fit Java code style.
In this case, we can't use StatementState.valueOf("waiting".toUpperCase()) as usually but
StatementState.valueOf(state.toLowerCase().capitalize). Not sure if we can change it now.
Attachments
Issue Links
- links to