return -1;\r
}\r
}\r
+\r
+ Integer intDate1 = getIntegerDate(taxonBase1);\r
+ Integer intDate2 = getIntegerDate(taxonBase2);\r
\r
- String date1 = getDate(taxonBase1);;\r
- String date2 = getDate(taxonBase2);\r
- if (date1 == null && date2 == null){\r
+ if (intDate1 == null && intDate2 == null){\r
result = 0;\r
- }else if (date1 == null){\r
+ }else if (intDate1 == null){\r
return 1;\r
- }else if (date2 == null){\r
+ }else if (intDate2 == null){\r
return -1;\r
}else{\r
- result = date1.compareTo(date2);\r
+ result = intDate1.compareTo(intDate2);\r
}\r
\r
if (result == 0){\r
}\r
\r
\r
+ private Integer getIntegerDate(TaxonBase taxonBase){\r
+ Integer result;\r
+ \r
+ if (taxonBase == null){\r
+ result = null;\r
+ }else{\r
+ TaxonNameBase name = taxonBase.getName();\r
+ if (name == null){\r
+ result = null;\r
+ }else{\r
+ if (name instanceof ZoologicalName){\r
+ \r
+ result = (((ZoologicalName)name).getPublicationYear());\r
+ }else{\r
+ ReferenceBase ref = (ReferenceBase) name.getNomenclaturalReference();\r
+ if (ref == null){\r
+ result = null;\r
+ }else{\r
+ if (ref.getDatePublished() == null){\r
+ if (ref.getInReference() == null){\r
+ result = null; \r
+ }else{\r
+ result = ref.getInReference().getDatePublished().getStartYear();\r
+ } \r
+ }else{\r
+ result = ref.getDatePublished().getStartYear();\r
+ }\r
+ }\r
+ }\r
+ } \r
+ }\r
+ \r
+ return result;\r
+ }\r
\r
@SuppressWarnings("unchecked")\r
+ @Deprecated\r
private String getDate(TaxonBase taxonBase){\r
String result = null;\r
if (taxonBase == null){\r