@SuppressWarnings("unchecked")
    public static <T extends Enum & Option> T recognizeOption(final String option) {
        final Enum res = StringConverter.convert(Enum.class, option);
        Preconditions.checkState(Option.class.isAssignableFrom(res.getDeclaringClass()),
                "%s is not an option type (must be enum and implement Option interface)",
                res.getDeclaringClass());
        return (T) res;
    }
@ SuppressWarnings ( "unchecked" ) public static < T extends Enum & Option > T recognizeOption ( final String option ) { final Enum res = StringConverter . convert ( Enum . class , option ) ; Preconditions . checkState ( Option . class . isAssignableFrom ( res . getDeclaringClass ( ) ) , "%s is not an option type (must be enum and implement Option interface)" , res . getDeclaringClass ( ) ) ; return ( T ) res ; }
Recognize option from string. Format: "optionType.optionName".

@param option option name
@param <T>    target option type
@return recognized option enum