001    /*
002     *                    BioJava development code
003     *
004     * This code may be freely distributed and modified under the
005     * terms of the GNU Lesser General Public Licence.  This should
006     * be distributed with the code.  If you do not have a copy,
007     * see:
008     *
009     *      http://www.gnu.org/copyleft/lesser.html
010     *
011     * Copyright for this code is held jointly by the individual
012     * authors.  These should be listed in @author doc comments.
013     *
014     * For more information on the BioJava project and its aims,
015     * or to join the biojava-l mailing list, visit the home page
016     * at:
017     *
018     *      http://www.biojava.org/
019     *
020     * Created on 3/1/2010
021     * @author Scooter Willis <willishf at gmail dot com>
022     */
023    
024    package org.biojava3.core.sequence;
025    
026    import java.util.Comparator;
027    
028    
029    
030        public class CDSComparator implements Comparator<CDSSequence>{
031    
032    /**
033     * Used to sort two CDSSequences where Negative Strand makes it tough
034     * @param o1
035     * @param o2
036     * @return
037     */
038            public int compare(CDSSequence o1, CDSSequence o2) {
039                if(o1.getStrand() != o2.getStrand()){
040                    return o1.getBioBegin() - o2.getBioBegin();
041                }
042                if(o1.getStrand() == Strand.NEGATIVE){
043                    return -1 * (o1.getBioBegin() - o2.getBioBegin());
044                }
045    
046                return o1.getBioBegin() - o2.getBioBegin();
047            }
048    
049        }