org.apache.commons.io

Class IOCase

public final class IOCase extends Object implements Serializable

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 filename 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 filenames.

Since: Commons IO 1.3

Version: $Id: IOCase.java 606345 2007-12-21 23:43:01Z ggregory $

Author: Stephen Colebourne

Field Summary
static IOCaseINSENSITIVE
The constant for case insensitive regardless of operating system.
Stringname
The enumeration name.
booleansensitive
The sensitivity flag.
static longserialVersionUID
Serialization version.
static IOCaseSENSITIVE
The constant for case sensitive regardless of operating system.
static IOCaseSYSTEM
The constant for case sensitivity determined by the current operating system.
Constructor Summary
IOCase(String name, boolean sensitive)
Private constructor.
Method Summary
intcheckCompareTo(String str1, String str2)
Compares two strings using the case-sensitivity rule.
booleancheckEndsWith(String str, String end)
Checks if one string ends with another using the case-sensitivity rule.
booleancheckEquals(String str1, String str2)
Compares two strings using the case-sensitivity rule.
booleancheckRegionMatches(String str, int strStartIndex, String search)
Checks if one string contains another at a specific index using the case-sensitivity rule.
booleancheckStartsWith(String str, String start)
Checks if one string starts with another using the case-sensitivity rule.
StringconvertCase(String str)
Converts the case of the input String to a standard format.
static IOCaseforName(String name)
Factory method to create an IOCase from a name.
StringgetName()
Gets the name of the constant.
booleanisCaseSensitive()
Does the object represent case sensitive comparison.
ObjectreadResolve()
Replaces the enumeration from the stream with a real one.
StringtoString()
Gets a string describing the sensitivity.

Field Detail

INSENSITIVE

public static final IOCase INSENSITIVE
The constant for case insensitive regardless of operating system.

name

private final String name
The enumeration name.

sensitive

private final transient boolean sensitive
The sensitivity flag.

serialVersionUID

private static final long serialVersionUID
Serialization version.

SENSITIVE

public static final IOCase SENSITIVE
The constant for case sensitive 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 filenames, Unix is case-sensitive.

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

Constructor Detail

IOCase

private IOCase(String name, boolean sensitive)
Private constructor.

Parameters: name the name sensitive the sensitivity

Method Detail

checkCompareTo

public int checkCompareTo(String str1, String str2)
Compares two strings using the case-sensitivity rule.

This method mimics String#compareTo 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

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

checkEquals

public boolean checkEquals(String str1, String str2)
Compares two strings using the case-sensitivity rule.

This method mimics String#equals 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

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

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, 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

convertCase

String convertCase(String str)
Converts the case of the input String to a standard format. Subsequent operations can then use standard String methods.

Parameters: str the string to convert, null returns null

Returns: the lower-case version if case-insensitive

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

readResolve

private Object readResolve()
Replaces the enumeration from the stream with a real one. This ensures that the correct flag is set for SYSTEM.

Returns: the resolved object

toString

public String toString()
Gets a string describing the sensitivity.

Returns: a string describing the sensitivity

Copyright (c) 2002-2011 Apache Software Foundation