\r
package eu.etaxonomy.taxeditor.model;\r
\r
+import java.util.Calendar;\r
import java.util.HashSet;\r
import java.util.Set;\r
import java.util.SortedSet;\r
import eu.etaxonomy.cdm.common.CdmUtils;\r
import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
+import eu.etaxonomy.cdm.model.common.TimePeriod;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
import eu.etaxonomy.cdm.model.name.NameRelationship;\r
// String microReference = name.getNomenclaturalMicroReference();\r
// return CdmUtils.Nz(nomenclaturalReference.getNomenclaturalCitation(microReference));\r
}\r
+ \r
+ public static TimePeriod getDatePublished(String refYear) throws NumberFormatException {\r
+ if (refYear == null){\r
+ return null;\r
+ }\r
+ \r
+ String[] years = refYear.split("-");\r
+ Calendar calStart = null;\r
+ Calendar calEnd = null;\r
+ if (years.length > 2 || years.length <= 0){\r
+ logger.warn("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX getDatePublished");\r
+ } else {\r
+ calStart = getCalendar(years[0]);\r
+ if (years.length >= 2){\r
+ calEnd = getCalendar(years[1]);\r
+ }\r
+ }\r
+ TimePeriod result = TimePeriod.NewInstance(calStart, calEnd);\r
+ return result;\r
+ }\r
+ \r
+ public static Calendar getCalendar(String strYear) throws NumberFormatException {\r
+ \r
+ //FIXME until now only quick and dirty and wrong\r
+ Calendar cal = Calendar.getInstance();\r
+ cal.set(9999, Calendar.DECEMBER, 30, 0, 0, 0);\r
+ if (CdmUtils.isNumeric(strYear)){\r
+ Integer year = Integer.valueOf(strYear.trim());\r
+ if (year > 1750 && year < 2030){\r
+ cal.set(year, Calendar.JANUARY, 1, 0, 0, 0);\r
+ } else {\r
+ throw new NumberFormatException();\r
+ }\r
+ } else throw new NumberFormatException();\r
+ \r
+ return cal;\r
+ }\r
}\r