package com.intellectualcrafters.plot.object;
/**
*/
public class StringWrapper {
public final String value;
private int hash;
/**
* Constructor
*
* @param value to wrap
*/
public StringWrapper(String value) {
this.value = value;
}
/**
* Check if a wrapped string equals another one
*
* @param obj to compare
*
* @return true if obj equals the stored value
*/
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
if (obj.hashCode() != hashCode()) {
return false;
}
StringWrapper other = (StringWrapper) obj;
if ((other.value == null) || (this.value == null)) {
return false;
}
return other.value.equalsIgnoreCase(this.value.toLowerCase());
}
/**
* Get the string value.
*
* @return string value
*/
@Override
public String toString() {
return this.value;
}
/**
* Get the hash value.
*
* @return has value
*/
@Override
public int hashCode() {
if (this.value == null) {
return 0;
}
if (this.hash == 0) {
this.hash = this.value.toLowerCase().hashCode();
}
return this.hash;
}
}