From a2dd1d0bcf49fe81b9e50f57a76c5ee02dcae65d Mon Sep 17 00:00:00 2001
From: tcarver <tjc>
Date: Mon, 17 Dec 2012 14:50:08 +0000
Subject: [PATCH] add sortByPosition()

---
 .../sanger/artemis/FeatureSegmentVector.java  | 25 ++++++++++++++++---
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/uk/ac/sanger/artemis/FeatureSegmentVector.java b/uk/ac/sanger/artemis/FeatureSegmentVector.java
index 68765ea95..d360cc5da 100644
--- a/uk/ac/sanger/artemis/FeatureSegmentVector.java
+++ b/uk/ac/sanger/artemis/FeatureSegmentVector.java
@@ -25,6 +25,9 @@
 
 package uk.ac.sanger.artemis;
 
+import java.util.Collections;
+import java.util.Comparator;
+
 import uk.ac.sanger.artemis.util.FastVector;
 
 /**
@@ -36,6 +39,12 @@ import uk.ac.sanger.artemis.util.FastVector;
  **/
 
 public class FeatureSegmentVector {
+  
+  /**
+   *  Storage for FeatureSegment objects.
+   */
+  private FastVector vector = new FastVector ();
+  
   /**
    *  Create a new vector of FeatureSegment objects.
    **/
@@ -146,9 +155,17 @@ public class FeatureSegmentVector {
     return_vector.vector = (FastVector) vector.clone ();
     return return_vector;
   }
+  
+  public void sortByPosition() {
+    Collections.sort(vector, new PositionComparator());
+  }
+}
 
-  /**
-   *  Storage for FeatureSegment objects.
-   */
-  private FastVector vector = new FastVector ();
+class PositionComparator implements Comparator<FeatureSegment> {
+  public int compare(FeatureSegment s1, FeatureSegment s2) {
+    if(s1.getStart().getPosition() < s2.getStart().getPosition())
+      return -1;
+    else
+      return 1;
+  } 
 }
-- 
GitLab