package net.sourceforge.mayfly.util;
public class CaseInsensitiveString {
private final String delegate;
private final int hashCode;
public CaseInsensitiveString(String contents) {
this.delegate = contents;
if (contents == null) {
throw new NullPointerException();
}
this.hashCode = delegate.toLowerCase().hashCode();
}
@Override
public String toString() {
return getString();
}
public String getString() {
return delegate;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof CaseInsensitiveString)) {
return false;
}
return delegate.equalsIgnoreCase(((CaseInsensitiveString) obj).getString());
}
@Override
public int hashCode() {
return hashCode;
}
}