+ public static final PresenceTerm NATIVE_DOUBTFULLY_NATIVE(){
+ return getTermByUuid(uuidND);
+ }
+
+ public static final PresenceTerm NATIVE_PRESENCE_QUESTIONABLE(){
+ return getTermByUuid(uuidNQ);
+ }
+
+ public static final PresenceTerm INVASIVE(){
+ return getTermByUuid(uuidIV);
+ }
+
+ public static final PresenceTerm NATURALISED(){
+ return getTermByUuid(uuidNA);
+ }
+
+ //TODO read from label(abbrevs) like in TDWGArea
+ public static PresenceTerm getPresenceTermByAbbreviation(String abbrev) {
+ if (abbrev == null) { throw new NullPointerException("abbrev is 'null' in getPresenceTermByAbbreviation");
+ } else if (abbrev.equalsIgnoreCase("c")) { return PresenceTerm.CULTIVATED();
+ } else if (abbrev.equalsIgnoreCase("e")) { return PresenceTerm.ENDEMIC_FOR_THE_RELEVANT_AREA();
+ } else if (abbrev.equalsIgnoreCase("i")) { return PresenceTerm.INTRODUCED();
+ } else if (abbrev.equalsIgnoreCase("ia")) { return PresenceTerm.INTRODUCED_ADVENTITIOUS();
+ } else if (abbrev.equalsIgnoreCase("ic")) { return PresenceTerm.INTRODUCED_CULTIVATED();
+ } else if (abbrev.equalsIgnoreCase("id")) { return PresenceTerm.INTRODUCED_DOUBTFULLY_INTRODUCED();
+ } else if (abbrev.equalsIgnoreCase("in")) { return PresenceTerm.INTRODUCED_NATURALIZED();
+ } else if (abbrev.equalsIgnoreCase("ip")) { return PresenceTerm.INTRODUCED_UNCERTAIN_DEGREE_OF_NATURALISATION();
+ } else if (abbrev.equalsIgnoreCase("iq")) { return PresenceTerm.INTRODUCED_PRESENCE_QUESTIONABLE();
+ } else if (abbrev.equalsIgnoreCase("n")) { return PresenceTerm.NATIVE();
+ } else if (abbrev.equalsIgnoreCase("nd")) { return PresenceTerm.NATIVE_DOUBTFULLY_NATIVE();
+ } else if (abbrev.equalsIgnoreCase("nq")) { return PresenceTerm.NATIVE_PRESENCE_QUESTIONABLE();
+ } else if (abbrev.equalsIgnoreCase("p")) { return PresenceTerm.PRESENT();
+ } else if (abbrev.equalsIgnoreCase("na")) { return PresenceTerm.NATURALISED();
+ } else if (abbrev.equalsIgnoreCase("iv")) { return PresenceTerm.INVASIVE();
+ } else {
+ logger.warn("Unknown presence status term: " + abbrev);
+ return null;
+ }
+ }
+
+//************************** METHODS ********************************
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.model.common.DefinedTermBase#resetTerms()
+ */
+ @Override
+ public void resetTerms(){
+ termMap = null;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.model.common.DefinedTermBase#setDefaultTerms(eu.etaxonomy.cdm.model.common.TermVocabulary)
+ */
+ @Override
+ protected void setDefaultTerms(TermVocabulary<PresenceTerm> termVocabulary) {
+ termMap = new HashMap<UUID, PresenceTerm>();
+ for (PresenceTerm term : termVocabulary.getTerms()){
+ termMap.put(term.getUuid(), (PresenceTerm)term); //TODO casting
+ }
+ }