X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequenceFeature.java;h=71732aa21adeeb0d363ed39135959bd080180fe1;hb=bd4ab013e64863bbbffa93c58953051e11cfb236;hp=c75d6f24cfd98e77f16737e88064d840a0b0b9c3;hpb=37de9310bec3501cbc6381e0c3dcb282fcaad812;p=jalview.git diff --git a/src/jalview/datamodel/SequenceFeature.java b/src/jalview/datamodel/SequenceFeature.java index c75d6f2..71732aa 100755 --- a/src/jalview/datamodel/SequenceFeature.java +++ b/src/jalview/datamodel/SequenceFeature.java @@ -132,8 +132,8 @@ public class SequenceFeature * @param end * @param featureGroup */ - public SequenceFeature(String type, String desc, String status, - int begin, int end, String featureGroup) + public SequenceFeature(String type, String desc, String status, int begin, + int end, String featureGroup) { this(type, desc, begin, end, featureGroup); setStatus(status); @@ -208,7 +208,9 @@ public class SequenceFeature } SequenceFeature sf = (SequenceFeature) o; - if (begin != sf.begin || end != sf.end || score != sf.score) + boolean sameScore = Float.isNaN(score) ? Float.isNaN(sf.score) + : score == sf.score; + if (begin != sf.begin || end != sf.end || !sameScore) { return false; } @@ -218,8 +220,8 @@ public class SequenceFeature return false; } - if (!(type + description + featureGroup + getPhase()).equals(sf.type - + sf.description + sf.featureGroup + sf.getPhase())) + if (!(type + description + featureGroup + getPhase()).equals( + sf.type + sf.description + sf.featureGroup + sf.getPhase())) { return false; } @@ -530,4 +532,20 @@ public class SequenceFeature return s.hashCode() + getBegin() + getEnd() + (int) getScore() + getStrand(); } + + /** + * Answers true if the feature's start/end values represent two related + * positions, rather than ends of a range. Such features may be visualised or + * reported differently to features on a range. + */ + public boolean isContactFeature() + { + // TODO abstract one day to a FeatureType class + if ("disulfide bond".equalsIgnoreCase(type) + || "disulphide bond".equalsIgnoreCase(type)) + { + return true; + } + return false; + } }