package jalview.util.matcher; import jalview.util.MessageManager; import java.util.HashMap; import java.util.Map; /** * An enumeration for binary conditions that a user might choose from when * setting filter or match conditions for values */ public enum Condition { Contains(false, true), NotContains(false, true), Matches(false, true), NotMatches(false, true), Present(false, false), NotPresent(false, false), EQ(true, true), NE(true, true), LT(true, true), LE(true, true), GT(true, true), GE(true, true); private static Map displayNames = new HashMap<>(); private boolean numeric; private boolean needsAPattern; Condition(boolean isNumeric, boolean needsPattern) { numeric = isNumeric; needsAPattern = needsPattern; } /** * Answers true if the condition does a numerical comparison, else false * (string comparison) * * @return */ public boolean isNumeric() { return numeric; } /** * Answers true if the condition requires a pattern to compare against, else * false * * @return */ public boolean needsAPattern() { return needsAPattern; } /** * Answers a display name for the match condition, suitable for showing in * drop-down menus. The value may be internationalized using the resource key * "label.matchCondition_" with the enum name appended. * * @return */ @Override public String toString() { String name = displayNames.get(this); if (name != null) { return name; } name = MessageManager .getStringOrReturn("label.matchCondition_", name()); displayNames.put(this, name); return name; } }