X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2Fmatcher%2FCondition.java;h=8816a7f2bda0669f58032fd408606fb7c1b1f210;hb=14b1b2a878190d5fffda298c4b9a901c72c74ad3;hp=304780277f5ee765581208767baba72cdee075e6;hpb=4073e96c3cb60f28c01cd91ec7f847cafbf01f78;p=jalview.git diff --git a/src/jalview/util/matcher/Condition.java b/src/jalview/util/matcher/Condition.java index 3047802..8816a7f 100644 --- a/src/jalview/util/matcher/Condition.java +++ b/src/jalview/util/matcher/Condition.java @@ -8,19 +8,55 @@ import jalview.util.MessageManager; */ 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); - + Contains(false, true, "Contains"), + NotContains(false, true, "NotContains"), Matches(false, true, "Matches"), + NotMatches(false, true, "NotMatches"), Present(false, false, "Present"), + NotPresent(false, false, "NotPresent"), EQ(true, true, "EQ"), + NE(true, true, "NE"), LT(true, true, "LT"), LE(true, true, "LE"), + GT(true, true, "GT"), GE(true, true, "GE"); + private boolean numeric; private boolean needsAPattern; - Condition(boolean isNumeric, boolean needsPattern) + /* + * value used to save a Condition to the + * Jalview project file or restore it from project; + * it should not be changed even if enum names change in future + */ + private String stableName; + + /** + * Answers the enum value whose 'stable name' matches the argument (not case + * sensitive), or null if no match + * + * @param stableName + * @return + */ + public static Condition fromString(String stableName) + { + for (Condition c : values()) + { + if (c.stableName.equalsIgnoreCase(stableName)) + { + return c; + } + } + return null; + } + + /** + * Constructor + * + * @param isNumeric + * @param needsPattern + * @param stablename + */ + Condition(boolean isNumeric, boolean needsPattern, String stablename) { numeric = isNumeric; needsAPattern = needsPattern; + stableName = stablename; } /** @@ -45,6 +81,11 @@ public enum Condition return needsAPattern; } + public String getStableName() + { + return stableName; + } + /** * Answers a display name for the match condition, suitable for showing in * drop-down menus. The value may be internationalized using the resource key