X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Forg%2Fbiojava%2Fdasobert%2Ffeature%2FFeatureMapComparator.java;fp=src%2Forg%2Fbiojava%2Fdasobert%2Ffeature%2FFeatureMapComparator.java;h=8aa747b7f6d910189e5df560178e608e02286c3c;hb=54e003f9b2fff47dbfea6401c3944afdb7bd37b3;hp=0000000000000000000000000000000000000000;hpb=b318e1301843732eabd1b34ce391828887c883df;p=jalview.git diff --git a/src/org/biojava/dasobert/feature/FeatureMapComparator.java b/src/org/biojava/dasobert/feature/FeatureMapComparator.java new file mode 100644 index 0000000..8aa747b --- /dev/null +++ b/src/org/biojava/dasobert/feature/FeatureMapComparator.java @@ -0,0 +1,69 @@ +/* + * BioJava development code + * + * This code may be freely distributed and modified under the + * terms of the GNU Lesser General Public Licence. This should + * be distributed with the code. If you do not have a copy, + * see: + * + * http://www.gnu.org/copyleft/lesser.html + * + * Copyright for this code is held jointly by the individual + * authors. These should be listed in @author doc comments. + * + * For more information on the BioJava project and its aims, + * or to join the biojava-l mailing list, visit the home page + * at: + * + * http://www.biojava.org/ + * + * Created on 23.09.2004 + * @author Andreas Prlic + * + */ + + +package org.biojava.dasobert.feature ; + +import java.util.Comparator ; +import java.util.Map ; + +/** a comparator to sort Features if they are still in a Map ( sorts by type ) + * @author Andreas Prlic + */ + +public class FeatureMapComparator + implements Comparator +{ + + public FeatureMapComparator() { + } + + public int compare(Object a, Object b) { + Map x = (Map) a; + Map y = (Map) b; + + String typea = (String)x.get("TYPE"); + String typeb = (String)y.get("TYPE"); + + + + if ( isSecstruc(typea) && isSecstruc(typeb)) { + return 0 ; + } + return typea.compareTo(typeb); + } + + public boolean isSecstruc(String type) { + if ( type.equals("HELIX") + || + type.equals("STRAND") + || + type.equals("TURN") + ) { + return true ; + } + return false ; + } + +}