Class EnumNamingStrategies.CamelCaseStrategy

  • All Implemented Interfaces:
    EnumNamingStrategy
    Enclosing class:
    EnumNamingStrategies

    public static class EnumNamingStrategies.CamelCaseStrategy
    extends java.lang.Object
    implements EnumNamingStrategy

    An implementation of EnumNamingStrategy that converts enum names in the typical upper snake case format to camel case format. This implementation follows three rules described below.

    1. converts any character preceded by an underscore into upper case character, regardless of its original case (upper or lower).
    2. converts any character NOT preceded by an underscore into a lower case character, regardless of its original case (upper or lower).
    3. converts contiguous sequence of underscores into a single underscore.
    WARNING: Naming conversion conflicts caused by underscore usage should be handled by client. e.g. Both PEANUT_BUTTER, PEANUT__BUTTER are converted into "peanutButter". And "peanutButter" will be deserialized into enum with smaller Enum.ordinal() value.

    These rules result in the following example conversions from upper snakecase names to camelcase names.

    • "USER_NAME" is converted into "userName"
    • "USER______NAME" is converted into "userName"
    • "USERNAME" is converted into "username"
    • "User__Name" is converted into "userName"
    • "_user_name" is converted into "UserName"
    • "_user_name_s" is converted into "UserNameS"
    • "__Username" is converted into "Username"
    • "__username" is converted into "Username"
    • "username" is converted into "username"
    • "Username" is converted into "username"
    Since:
    2.15