return -1;
}
else if (id2==0) {
- return 1;
+ if (id1 == 0){
+ return 0;
+ }else{
+ return 1;
+ }
}
// sort by type (Primary taxonomic > Primary Media > others
// alphabetically by reference title cache)
- if (type1 != null && type1.equals(OriginalSourceType.PrimaryTaxonomicSource)
- && (type2 == null || !type2.equals(OriginalSourceType.PrimaryTaxonomicSource))) {
- return -1;
- }
- if ((type1 == null || !type1.equals(OriginalSourceType.PrimaryTaxonomicSource))
- && type2 != null && type2.equals(OriginalSourceType.PrimaryTaxonomicSource)) {
- return 1;
- }
+ int result = 0;
- if ((type1 == null || type1.equals(OriginalSourceType.PrimaryMediaSource))
- && (type2==null || !type2.equals(OriginalSourceType.PrimaryMediaSource))) {
- return -1;
- }
- if (type2 != null && type2.equals(OriginalSourceType.PrimaryMediaSource)
- && type1!=null && !type1.equals(OriginalSourceType.PrimaryMediaSource)) {
- return 1;
+ if (type1 == null){
+ result = 1;
+ } else if (type2 == null){
+ result = -1;
+ } else if (type1.equals(type2)){
+ result = 0;
+ } else if (type1.equals(OriginalSourceType.PrimaryTaxonomicSource) && !type2.equals(OriginalSourceType.PrimaryTaxonomicSource)){
+ result = -1;
+ } else if (type2.equals(OriginalSourceType.PrimaryTaxonomicSource) && !type1.equals(OriginalSourceType.PrimaryTaxonomicSource)){
+ result = 1;
+ }else if (type1.equals(OriginalSourceType.PrimaryMediaSource) && !type2.equals(OriginalSourceType.PrimaryMediaSource)){
+ result = -1;
+ } else if (type2.equals(OriginalSourceType.PrimaryMediaSource) && !type1.equals(OriginalSourceType.PrimaryMediaSource)){
+ result = 1;
}
+// if (type1 != null && type1.equals(OriginalSourceType.PrimaryTaxonomicSource)
+// && (type2 == null || !type2.equals(OriginalSourceType.PrimaryTaxonomicSource))) {
+// return -1;
+// }
+// if ((type1 == null || !type1.equals(OriginalSourceType.PrimaryTaxonomicSource))
+// && type2 != null && type2.equals(OriginalSourceType.PrimaryTaxonomicSource)) {
+// return 1;
+// }
+//
+// if ((type1 == null || type1.equals(OriginalSourceType.PrimaryMediaSource))
+// && (type2==null || !type2.equals(OriginalSourceType.PrimaryMediaSource))) {
+// return -1;
+// }
+// if (type2 != null && type2.equals(OriginalSourceType.PrimaryMediaSource)
+// && type1!=null && !type1.equals(OriginalSourceType.PrimaryMediaSource)) {
+// return 1;
+// }
//sort by citation title cache
- if(citation1!=null && citation2!=null){
- return citation1.getTitleCache().compareTo(citation2.getTitleCache());
- }
+ if (result == 0){
+ if(citation1!=null && citation2!=null){
+ result = citation1.getTitleCache().compareTo(citation2.getTitleCache());
+ }
+
+ if(o2.getCreated()!=null && o1.getCreated()!=null){
+ result = o2.getCreated().compareTo(o1.getCreated());
+ }
+ if (result == 0){
+ //default fallback
+ return o1.getId() - o2.getId();
+ }
- if(o2.getCreated()!=null && o1.getCreated()!=null){
- return o2.getCreated().compareTo(o1.getCreated());
}
- //default fallback
- return o1.getId() - o2.getId();
+ return result;
+
}
}