Enum JavaEscapeLevel

java.lang.Object
java.lang.Enum<JavaEscapeLevel>
org.unbescape.java.JavaEscapeLevel
All Implemented Interfaces:
Serializable, Comparable<JavaEscapeLevel>, java.lang.constant.Constable

public enum JavaEscapeLevel extends Enum<JavaEscapeLevel>

Levels defined for Java escape/unescape operations:

  • Level 1: Escape only the basic escape set. Note the result of a level-1 escape operation might still contain non-ASCII characters if they existed in input, and therefore you will still need to correctly manage your input/output character encoding settings. Such basic set consists of:
    • The Single Escape Characters: \b (U+0008), \t (U+0009), \n (U+000A), \f (U+000C), \r (U+000D), \" (U+0022), \' (U+0027), \\ (U+005C). Note \' is not really needed in String literals (only in Character literals), so it won't be used until escape level 3.
    • Two ranges of non-displayable, control characters (some of which are already part of the single escape characters list): U+0000 to U+001F and U+007F to U+009F.
  • Level 2: Escape the basic escape set (as defined in level 1), plus all non-ASCII characters. The result of a level-2 escape operation is therefore always ASCII-only text, and safer to use in complex scenarios with mixed input/output character encodings.
  • Level 3: Escape all non-alphanumeric characters, this is, all but those in the A-Z, a-z and 0-9 ranges. This level can be safely used for completely escaping texts, including whitespace, line feeds, punctuation, etc. in scenarios where this adds an extra level of safety.
  • Level 4: Escape all characters, even alphanumeric ones.

For further information, see the Glossary and the References sections at the documentation for the JavaEscape class.

Since:
1.0.0
  • Enum Constant Details

    • LEVEL_1_BASIC_ESCAPE_SET

      public static final JavaEscapeLevel LEVEL_1_BASIC_ESCAPE_SET
      Level 1 escape: escape only the basic escape set: Single Escape Chars plus non-displayable control chars.
    • LEVEL_2_ALL_NON_ASCII_PLUS_BASIC_ESCAPE_SET

      public static final JavaEscapeLevel LEVEL_2_ALL_NON_ASCII_PLUS_BASIC_ESCAPE_SET
      Level 2 escape: escape the basic escape set plus all non-ASCII characters (result will always be ASCII).
    • LEVEL_3_ALL_NON_ALPHANUMERIC

      public static final JavaEscapeLevel LEVEL_3_ALL_NON_ALPHANUMERIC
      Level 3 escape: escape all non-alphanumeric characteres (escape all but those in the A-Z, a-z and 0-9 ranges).
    • LEVEL_4_ALL_CHARACTERS

      public static final JavaEscapeLevel LEVEL_4_ALL_CHARACTERS
      Level 4 escape: escape all characters, including alphanumeric.
  • Field Details

    • escapeLevel

      private final int escapeLevel
  • Constructor Details

    • JavaEscapeLevel

      private JavaEscapeLevel(int escapeLevel)
  • Method Details

    • values

      public static JavaEscapeLevel[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static JavaEscapeLevel valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null
    • forLevel

      public static JavaEscapeLevel forLevel(int level)

      Utility method for obtaining an enum value from its corresponding int level value.

      Parameters:
      level - the level
      Returns:
      the escape level enum constant, or IllegalArgumentException if level does not exist.
    • getEscapeLevel

      public int getEscapeLevel()
      Return the int escape level.
      Returns:
      the escape level.