Class EnumNamingStrategies.CamelCaseStrategy

java.lang.Object
com.fasterxml.jackson.databind.EnumNamingStrategies.CamelCaseStrategy
All Implemented Interfaces:
EnumNamingStrategy
Enclosing class:
EnumNamingStrategies

public static class EnumNamingStrategies.CamelCaseStrategy extends 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
  • Field Details

  • Constructor Details

    • CamelCaseStrategy

      public CamelCaseStrategy()
  • Method Details

    • convertEnumToExternalName

      public String convertEnumToExternalName(String enumName)
      Description copied from interface: EnumNamingStrategy
      Translates the given enumName into an external property name according to the implementation of this EnumNamingStrategy.
      Specified by:
      convertEnumToExternalName in interface EnumNamingStrategy
      Parameters:
      enumName - the name of the enum value to translate
      Returns:
      the external property name that corresponds to the given enumName according to the implementation of this EnumNamingStrategy.
      Since:
      2.15
    • indexIn

      private static int indexIn(CharSequence sequence, int start)
    • normalizeWord

      private static String normalizeWord(String word)
    • toLowerCase

      private static String toLowerCase(String string)
    • charToUpperCaseIfLower

      private static char charToUpperCaseIfLower(char c)
    • charToLowerCaseIfUpper

      private static char charToLowerCaseIfUpper(char c)