package com.rapidftr.datastore; import com.rapidftr.model.Child; public class StringField extends Field { public StringField(String attribute) { super(attribute); } public int compare(Child child1, Child child2) { return stringIgnoreCaseComparator(child1.getField(attribute), child2 .getField(attribute)); } private int stringIgnoreCaseComparator(String firstString, String secondString) { int result = (firstString == null ? "" : firstString.toLowerCase()) .compareTo((secondString == null ? "" : secondString .toLowerCase())); return result > 0 ? 1 : (result == 0 ? result : -1); // to avoid weird // emulator // behavior } public int hashCode() { return this.attribute.hashCode(); } public boolean equals(Object obj) { if (obj == null) return false; if (!(obj instanceof StringField)) return false; StringField field1 = (StringField) obj; if (field1.attribute == null) return false; return field1.attribute.equals(this.attribute); } }