X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2Ffeatures%2FFeatureMatcher.java;h=124909c2e94b50d457dadc7aed9ba3da8aadffa7;hb=6785b0c3d7bdc780e0ca1737082b82374eaf8335;hp=50dd1022954008c4afeb8014cb11afd92c79ae4f;hpb=ec44bf310ff6aaa0438f486dadc65f2af385d99d;p=jalview.git diff --git a/src/jalview/datamodel/features/FeatureMatcher.java b/src/jalview/datamodel/features/FeatureMatcher.java index 50dd102..124909c 100644 --- a/src/jalview/datamodel/features/FeatureMatcher.java +++ b/src/jalview/datamodel/features/FeatureMatcher.java @@ -1,5 +1,27 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.datamodel.features; +import java.util.Locale; + import jalview.datamodel.SequenceFeature; import jalview.util.MessageManager; import jalview.util.matcher.Condition; @@ -125,7 +147,7 @@ public class FeatureMatcher implements FeatureMatcherI int nextQuotePos = descriptor.indexOf(QUOTE, 1); if (nextQuotePos == -1) { - System.err.println(invalidFormat); + jalview.bin.Console.errPrintln(invalidFormat); return null; } firstField = descriptor.substring(1, nextQuotePos); @@ -137,18 +159,18 @@ public class FeatureMatcher implements FeatureMatcherI int nextSpacePos = descriptor.indexOf(SPACE); if (nextSpacePos == -1) { - System.err.println(invalidFormat); + jalview.bin.Console.errPrintln(invalidFormat); return null; } firstField = descriptor.substring(0, nextSpacePos); leftToParse = descriptor.substring(nextSpacePos + 1).trim(); } - String lower = firstField.toLowerCase(); - if (lower.startsWith(LABEL.toLowerCase())) + String lower = firstField.toLowerCase(Locale.ROOT); + if (lower.startsWith(LABEL.toLowerCase(Locale.ROOT))) { byLabel = true; } - else if (lower.startsWith(SCORE.toLowerCase())) + else if (lower.startsWith(SCORE.toLowerCase(Locale.ROOT))) { byScore = true; } @@ -171,7 +193,7 @@ public class FeatureMatcher implements FeatureMatcherI cond = Condition.fromString(leftToParse); if (cond == null || cond.needsAPattern()) { - System.err.println(invalidFormat); + jalview.bin.Console.errPrintln(invalidFormat); return null; } } @@ -192,7 +214,7 @@ public class FeatureMatcher implements FeatureMatcherI else { // unbalanced quote - System.err.println(invalidFormat); + jalview.bin.Console.errPrintln(invalidFormat); return null; } } @@ -288,6 +310,7 @@ public class FeatureMatcher implements FeatureMatcherI byLabel = forLabel; byScore = forScore; } + @Override public boolean matches(SequenceFeature feature) { @@ -310,8 +333,8 @@ public class FeatureMatcher implements FeatureMatcherI } /** - * Answers a string description of this matcher, suitable for display, debugging - * or logging. The format may change in future. + * Answers a string description of this matcher, suitable for display, + * debugging or logging. The format may change in future. */ @Override public String toString() @@ -331,7 +354,7 @@ public class FeatureMatcher implements FeatureMatcherI } Condition condition = matcher.getCondition(); - sb.append(SPACE).append(condition.toString().toLowerCase()); + sb.append(SPACE).append(condition.toString().toLowerCase(Locale.ROOT)); if (condition.isNumeric()) { sb.append(SPACE).append(matcher.getPattern()); @@ -356,6 +379,12 @@ public class FeatureMatcher implements FeatureMatcherI return byScore; } + @Override + public boolean isByAttribute() + { + return getAttribute() != null; + } + /** * {@inheritDoc} The output of this method should be parseable by method * fromString to restore the original object. @@ -387,7 +416,7 @@ public class FeatureMatcher implements FeatureMatcherI sb.append(displayName); } } - + Condition condition = matcher.getCondition(); sb.append(SPACE).append(condition.getStableName()); String pattern = matcher.getPattern(); @@ -405,7 +434,7 @@ public class FeatureMatcher implements FeatureMatcherI sb.append(SPACE).append(pattern); } } - + return sb.toString(); } }