org.apache.commons.io

## Enum IOCase

- java.lang.Object
- - java.lang.Enum<IOCase>
  - - org.apache.commons.io.IOCase

- All Implemented Interfaces:
    Serializable, Comparable<IOCase>

      public enum IOCase
      extends Enum<IOCase>

  Enumeration of IO case sensitivity.

  Different filing systems have different rules for case-sensitivity. Windows is case-insensitive, Unix is case-sensitive.

  This class captures that difference, providing an enumeration to control how file name comparisons should be performed. It also provides methods that use the enumeration to perform comparisons.

  Wherever possible, you should use the `check` methods in this class to compare file names.

  Since:
    1.3

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `INSENSITIVE` The constant for case insensitive regardless of operating system.
    `SENSITIVE` The constant for case sensitive regardless of operating system.
    `SYSTEM` The constant for case sensitivity determined by the current operating system.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `checkCompareTo(String str1, String str2)` Compares two strings using the case-sensitivity rule.
    `boolean` | `checkEndsWith(String str, String end)` Checks if one string ends with another using the case-sensitivity rule.
    `boolean` | `checkEquals(String str1, String str2)` Compares two strings using the case-sensitivity rule.
    `int` | `checkIndexOf(String str, int strStartIndex, String search)` Checks if one string contains another starting at a specific index using the case-sensitivity rule.
    `boolean` | `checkRegionMatches(String str, int strStartIndex, String search)` Checks if one string contains another at a specific index using the case-sensitivity rule.
    `boolean` | `checkStartsWith(String str, String start)` Checks if one string starts with another using the case-sensitivity rule.
    `static IOCase` | `forName(String name)` Factory method to create an IOCase from a name.
    `String` | `getName()` Gets the name of the constant.
    `boolean` | `isCaseSensitive()` Does the object represent case sensitive comparison.
    `static boolean` | `isCaseSensitive(IOCase caseSensitivity)` Tests for cases sensitivity in a null-safe manner.
    `String` | `toString()` Gets a string describing the sensitivity.
    `static IOCase` | `valueOf(String name)` Returns the enum constant of this type with the specified name.
    `static IOCase[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

    - ### Methods inherited from class java.lang.Enum

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, valueOf`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### SENSITIVE

          public static final IOCase SENSITIVE

      The constant for case sensitive regardless of operating system.

    - #### INSENSITIVE

          public static final IOCase INSENSITIVE

      The constant for case insensitive regardless of operating system.

    - #### SYSTEM

          public static final IOCase SYSTEM

      The constant for case sensitivity determined by the current operating system. Windows is case-insensitive when comparing file names, Unix is case-sensitive.

      Note: This only caters for Windows and Unix. Other operating systems (e.g. OSX and OpenVMS) are treated as case sensitive if they use the Unix file separator and case-insensitive if they use the Windows file separator (see `File.separatorChar`).

      If you serialize this constant on Windows, and deserialize on Unix, or vice versa, then the value of the case-sensitivity flag will change.

  - ### Method Detail

    - #### values

          public static IOCase[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (IOCase c : IOCase.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static IOCase 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

    - #### isCaseSensitive

          public static boolean isCaseSensitive(IOCase caseSensitivity)

      Tests for cases sensitivity in a null-safe manner.
      Parameters:
        `caseSensitivity` - an IOCase.
      Returns:
        true if the input is non-null and `isCaseSensitive()`.
      Since:
        2.10.0

    - #### forName

          public static IOCase forName(String name)

      Factory method to create an IOCase from a name.
      Parameters:
        `name` - the name to find
      Returns:
        the IOCase object
      Throws:
        `IllegalArgumentException` - if the name is invalid

    - #### getName

          public String getName()

      Gets the name of the constant.
      Returns:
        the name of the constant

    - #### isCaseSensitive

          public boolean isCaseSensitive()

      Does the object represent case sensitive comparison.
      Returns:
        true if case sensitive

    - #### checkCompareTo

          public int checkCompareTo(String str1,
                                    String str2)

      Compares two strings using the case-sensitivity rule.

      This method mimics `String.compareTo(java.lang.String)` but takes case-sensitivity into account.

      Parameters:
        `str1` - the first string to compare, not null
        `str2` - the second string to compare, not null
      Returns:
        true if equal using the case rules
      Throws:
        `NullPointerException` - if either string is null

    - #### checkEquals

          public boolean checkEquals(String str1,
                                     String str2)

      Compares two strings using the case-sensitivity rule.

      This method mimics `String.equals(java.lang.Object)` but takes case-sensitivity into account.

      Parameters:
        `str1` - the first string to compare, not null
        `str2` - the second string to compare, not null
      Returns:
        true if equal using the case rules
      Throws:
        `NullPointerException` - if either string is null

    - #### checkStartsWith

          public boolean checkStartsWith(String str,
                                         String start)

      Checks if one string starts with another using the case-sensitivity rule.

      This method mimics `String.startsWith(String)` but takes case-sensitivity into account.

      Parameters:
        `str` - the string to check
        `start` - the start to compare against
      Returns:
        true if equal using the case rules, false if either input is null

    - #### checkEndsWith

          public boolean checkEndsWith(String str,
                                       String end)

      Checks if one string ends with another using the case-sensitivity rule.

      This method mimics `String.endsWith(java.lang.String)` but takes case-sensitivity into account.

      Parameters:
        `str` - the string to check
        `end` - the end to compare against
      Returns:
        true if equal using the case rules, false if either input is null

    - #### checkIndexOf

          public int checkIndexOf(String str,
                                  int strStartIndex,
                                  String search)

      Checks if one string contains another starting at a specific index using the case-sensitivity rule.

      This method mimics parts of `String.indexOf(String, int)` but takes case-sensitivity into account.

      Parameters:
        `str` - the string to check, not null
        `strStartIndex` - the index to start at in str
        `search` - the start to search for, not null
      Returns:
        the first index of the search String, -1 if no match or `null` string input
      Throws:
        `NullPointerException` - if either string is null
      Since:
        2.0

    - #### checkRegionMatches

          public boolean checkRegionMatches(String str,
                                            int strStartIndex,
                                            String search)

      Checks if one string contains another at a specific index using the case-sensitivity rule.

      This method mimics parts of `String.regionMatches(boolean, int, String, int, int)` but takes case-sensitivity into account.

      Parameters:
        `str` - the string to check, not null
        `strStartIndex` - the index to start at in str
        `search` - the start to search for, not null
      Returns:
        true if equal using the case rules
      Throws:
        `NullPointerException` - if either string is null

    - #### toString

          public String toString()

      Gets a string describing the sensitivity.
      Overrides:
        `toString` in class `Enum<IOCase>`
      Returns:
        a string describing the sensitivity

Copyright © 2002–2021 The Apache Software Foundation. All rights reserved.