Project

General

Profile

« Previous | Next » 

Revision df366db5

Added by Katja Luther about 7 years ago

ref #4232: some more comparators to adapt

View differences:

eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/ReferenceSortProvider.java
1 1
/**
2 2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy 
3
* European Distributed Institute of Taxonomy
4 4
* http://www.e-taxonomy.eu
5
* 
5
*
6 6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7 7
* See LICENSE.TXT at the top of this package for the full license terms.
8 8
*/
......
22 22
public class ReferenceSortProvider extends AbstractSortProvider<Reference> {
23 23

  
24 24
	/**
25
	 * 
25
	 *
26 26
	 */
27 27
	public ReferenceSortProvider() {
28 28
		comparators.put("Type", new ReferenceTypeComparator());
......
30 30
	}
31 31

  
32 32
	private class ReferenceYearComparator implements Comparator<Reference> {
33
		
33

  
34 34
		/**
35 35
		 * @param o1
36 36
		 * @return
37 37
		 */
38 38
		private String getYearString(Reference o) {
39
			TimePeriod datePublished = o == null ? null : o.getDatePublished(); 
39
			TimePeriod datePublished = o == null ? null : o.getDatePublished();
40 40
			return datePublished == null? null : datePublished.toString();
41 41
		}
42
		
42

  
43 43
		/* (non-Javadoc)
44 44
		 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
45 45
		 */
46
		public int compare(Reference o1, Reference o2) {
46
		@Override
47
        public int compare(Reference o1, Reference o2) {
47 48
			String yearString1 = getYearString(o1);
48 49
			String yearString2 = getYearString(o2);
49 50
			if (yearString1 == null) {
......
58 59
			}
59 60
			int returnVal = yearString1.compareToIgnoreCase(yearString2);
60 61
			if (returnVal == 0) {
61
				return new TitleCacheComparator<Reference>().compare(o1, o2);
62
			} else {
63
				return returnVal;
62
				returnVal = new TitleCacheComparator<Reference>().compare(o1, o2);
63

  
64 64
			}
65
		}		
65
			return returnVal;
66

  
67
		}
66 68
	}
67
	
69

  
68 70
	private class ReferenceTypeComparator implements Comparator<Reference> {
69
		
71

  
70 72
		/* (non-Javadoc)
71 73
		 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
72 74
		 */
73
		public int compare(Reference o1, Reference o2) {
75
		@Override
76
        public int compare(Reference o1, Reference o2) {
74 77
			String typeString1 = o1.getClass().toString();
75 78
			String typeString2 = o2.getClass().toString();
76 79
			if (typeString1 == null) {
......
85 88
			}
86 89
			int returnVal = typeString1.compareToIgnoreCase(typeString2);
87 90
			if (returnVal == 0) {
91
			    //the TitleCacheComparator already fulfills the comparator contract
88 92
				return new TitleCacheComparator<Reference>().compare(o1, o2);
89 93
			} else {
90 94
				return returnVal;
91 95
			}
92
		}		
96
		}
93 97
	}
94 98

  
95
	
99

  
96 100
}

Also available in: Unified diff