OffsetComparator.java
01 /*
02  *  Copyright (c) 1995-2012, The University of Sheffield. See the file
03  *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
04  *
05  *  This file is part of GATE (see http://gate.ac.uk/), and is free
06  *  software, licenced under the GNU Library General Public License,
07  *  Version 2, June 1991 (in the distribution as file licence.html,
08  *  and also available at http://gate.ac.uk/gate/licence.html).
09  *
10  *  Valentin Tablan 02/10/2001
11  *
12  *  $Id: OffsetComparator.java 17530 2014-03-04 15:57:43Z markagreenwood $
13  *
14  */
15 package gate.util;
16 
17 import java.util.Comparator;
18 
19 import gate.Annotation;
20 
21 /**
22  * Compares annotations by start offsets first, then by end 
23  * offset if the start offsets are equal.
24  * Example: [5,9] < [6,7] < [6,9] < [7,8]
25  */
26 public class OffsetComparator implements Comparator<Annotation> {
27 
28   @Override
29   public int compare(Annotation a1, Annotation a2){
30     int result;
31 
32     // compare start offsets
33     result = a1.getStartNode().getOffset().compareTo(
34         a2.getStartNode().getOffset());
35 
36     // if start offsets are equal compare end offsets
37     if(result == 0) {
38       result = a1.getEndNode().getOffset().compareTo(
39           a2.getEndNode().getOffset());
40     // if
41 
42     return result;
43   }
44 }