--- /dev/null
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.api.service.name;
+
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
+
+/**
+ * @author pplitzner
+ * @since May 3, 2018
+ *
+ */
+public class TypeDesignationComparator implements Comparator<TypeDesignationBase> {
+
+ private TypeDesignationStatusComparator statusComparator = new TypeDesignationStatusComparator();
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public int compare(TypeDesignationBase o1, TypeDesignationBase o2) {
+ if(o1==null){
+ return 1;
+ }
+ if(o2==null){
+ return -1;
+ }
+ if(o1.getTypeStatus()==null){
+ return 1;
+ }
+ if(o2.getTypeStatus()==null){
+ return-1;
+ }
+ return statusComparator.compare(o1.getTypeStatus(), o2.getTypeStatus()) ;
+ }
+}
TypeDesignationWorkingSet typeDesignationWorkingSet = stringsByTypeByBaseEntity.get(baseEntityRef);
// order the TypeDesignationStatusBase keys
List<TypeDesignationStatusBase<?>> keyList = new LinkedList<>(typeDesignationWorkingSet.keySet());
- Collections.sort(keyList, new Comparator<TypeDesignationStatusBase>() {
- @SuppressWarnings("unchecked")
- @Override
- public int compare(TypeDesignationStatusBase o1, TypeDesignationStatusBase o2) {
- // fix inverted order of cdm terms by -1*
- if(o1 == null && o2 == null || o1 instanceof NullTypeDesignationStatus && o2 instanceof NullTypeDesignationStatus){
- return 0;
- }
- if(o1 == null || o1 instanceof NullTypeDesignationStatus){
- return -1;
- }
-
- if(o2 == null || o2 instanceof NullTypeDesignationStatus){
- return 1;
- }
- return -1 * o1.compareTo(o2);
- }
- });
+ Collections.sort(keyList, new TypeDesignationStatusComparator());
// new LinkedHashMap for the ordered TypeDesignationStatusBase keys
TypeDesignationWorkingSet orderedStringsByOrderedTypes = new TypeDesignationWorkingSet(
typeDesignationWorkingSet.getBaseEntity(),
--- /dev/null
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.api.service.name;
+
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.api.service.name.TypeDesignationSetManager.NullTypeDesignationStatus;
+import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;
+
+/**
+ * @author pplitzner
+ * @since May 3, 2018
+ *
+ */
+public class TypeDesignationStatusComparator implements Comparator<TypeDesignationStatusBase> {
+ @SuppressWarnings("unchecked")
+ @Override
+ public int compare(TypeDesignationStatusBase o1, TypeDesignationStatusBase o2) {
+ // fix inverted order of cdm terms by -1*
+ if(o1 == null && o2 == null || o1 instanceof NullTypeDesignationStatus && o2 instanceof NullTypeDesignationStatus){
+ return 0;
+ }
+ if(o1 == null || o1 instanceof NullTypeDesignationStatus){
+ return -1;
+ }
+
+ if(o2 == null || o2 instanceof NullTypeDesignationStatus){
+ return 1;
+ }
+ return -1 * o1.compareTo(o2);
+ }
+}