@Override public Optional<ChannelOption> convert(CharSequence object, Class<ChannelOption> targetType, ConversionContext context) { String str = object.toString(); String name = NameUtils.underscoreSeparate(str).toUpperCase(Locale.ENGLISH); ChannelOption<Object> channelOption = ChannelOption.valueOf(name); if (channelOption != null) { return Optional.of(channelOption); } return Optional.empty(); } }
/** * Format a string according to a convention. * * @param convention The string convention to use * @param str The string to format * @return The formatted string based on the convention */ public static String format(StringConvention convention, String str) { switch (convention) { case CAMEL_CASE: return NameUtils.camelCase(str); case HYPHENATED: return NameUtils.hyphenate(str); case UNDER_SCORE_SEPARATED_LOWER_CASE: return NameUtils.underscoreSeparate(str.toLowerCase(Locale.ENGLISH)); case UNDER_SCORE_SEPARATED: return NameUtils.environmentName(str); case CAMEL_CASE_CAPITALIZED: return NameUtils.camelCase(str, false); case RAW: default: return str; } } }