java.lang.Object
java.lang.Enum<IOCase>
com.streamwide.smartms.lib.template.serialization.IOCase
All Implemented Interfaces:
Serializable, Comparable<IOCase>, Constable

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 Details

    • 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 Details

    • values

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

      public static IOCase valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (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 class has no constant with the specified name
      NullPointerException - if the argument is null
    • forName

      @NonNull public static IOCase forName(@NonNull 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

      @NonNull 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(@NonNull String str1, @NonNull 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(@NonNull String str1, @NonNull 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(@NonNull String str, @NonNull 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, not null
      start - the start to compare against, not null
      Returns:
      true if equal using the case rules
      Throws:
      NullPointerException - if either string is null
    • checkEndsWith

      public boolean checkEndsWith(@NonNull String str, @NonNull 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, not null
      end - the end to compare against, not null
      Returns:
      true if equal using the case rules
      Throws:
      NullPointerException - if either string is null
    • checkIndexOf

      public int checkIndexOf(@NonNull String str, int strStartIndex, @NonNull 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(@NonNull String str, int strStartIndex, @NonNull 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

      @NonNull public String toString()
      Gets a string describing the sensitivity.
      Overrides:
      toString in class Enum<IOCase>
      Returns:
      a string describing the sensitivity