package com.blazebit.validation.constraint; import java.util.Comparator; public enum StringComparators implements Comparator<String> { EQUAL_IGNORE_CASE { @Override public boolean compareString(String o1, String o2) { return o1.equalsIgnoreCase(o2); } }, EQUAL_TRIMMED { @Override public boolean compareString(String o1, String o2) { return o1.trim().equals(o2.trim()); } }, EQUAL_IGNORE_CASE_TRIMMED { @Override public boolean compareString(String o1, String o2) { return o1.trim().equalsIgnoreCase(o2.trim()); } }; @Override public int compare(String o1, String o2) { if (o1 == o2) { return 0; } if (o1 == null || o2 == null) { return -1; } return compareString(o1, o2) ? 0 : -1; } abstract boolean compareString(String o1, String o2); }