[ https://issues.apache.org/jira/browse/LIVY-654?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Oleksandr Shevchenko reassigned LIVY-654: ----------------------------------------- Assignee: Oleksandr Shevchenko > Ability to validate string before creating state/kind of session/statement > --------------------------------------------------------------------------- > > Key: LIVY-654 > URL: https://issues.apache.org/jira/browse/LIVY-654 > Project: Livy > Issue Type: Improvement > Reporter: Oleksandr Shevchenko > Assignee: Oleksandr Shevchenko > Priority: Minor > Time Spent: 10m > Remaining Estimate: 0h > > 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): > > {code:java} > Try { > value match { > case JsString(state) => SessionState(state) > case _ => throw MyException > } > } > match { > case Success(state) => state > case Failure(ex) => throw MyException > } > {code} > it can be simplified to: > {code:java} > value match { > case JsString(state) if SessionState.isValid(state) => SessionState(state) > case _ => throw MyException > } > {code} > > 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. -- This message was sent by Atlassian Jira (v8.3.2#803003)