01: /*
02: * Spoon - http://spoon.gforge.inria.fr/
03: * Copyright (C) 2006 INRIA Futurs <renaud.pawlak@inria.fr>
04: *
05: * This software is governed by the CeCILL-C License under French law and
06: * abiding by the rules of distribution of free software. You can use, modify
07: * and/or redistribute the software under the terms of the CeCILL-C license as
08: * circulated by CEA, CNRS and INRIA at http://www.cecill.info.
09: *
10: * This program is distributed in the hope that it will be useful, but WITHOUT
11: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12: * FITNESS FOR A PARTICULAR PURPOSE. See the CeCILL-C License for more details.
13: *
14: * The fact that you are presently reading this means that you have had
15: * knowledge of the CeCILL-C license and that you accept its terms.
16: */
17:
18: package spoon.support.reflect.cu;
19:
20: import java.util.Comparator;
21:
22: import spoon.reflect.declaration.CtElement;
23:
24: /**
25: * Comparator of compile-time elements. Elements are sorted by position in
26: * source files.
27: */
28: public class CtLineElementComparator implements Comparator<CtElement> {
29:
30: /**
31: * Compares two program elements.
32: */
33: public int compare(CtElement o1, CtElement o2) {
34: if (o1.getPosition() == null)
35: return 1;
36: if (o2.getPosition() == null)
37: return -1;
38: if (o1.getPosition().getLine() == o2.getPosition().getLine()) {
39: return ((Integer) o1.getPosition().getColumn())
40: .compareTo(o2.getPosition().getColumn());
41: }
42: return ((Integer) o1.getPosition().getLine()).compareTo(o2
43: .getPosition().getLine());
44: }
45:
46: }
|