package eu.etaxonomy.cdm.model.description;
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.OrderedTermBase;
-import eu.etaxonomy.cdm.model.location.NamedArea;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-
-import org.apache.log4j.Logger;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
-import javax.persistence.*;
+import javax.persistence.Entity;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
+import org.apache.log4j.Logger;
+import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Indexed;
+
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.OrderedTermBase;
+import eu.etaxonomy.cdm.model.common.TermVocabulary;
+
/**
* This class represents terms describing different states (like "oval" or
* "triangular") for {@link Feature features} that can be described with
@XmlType(name = "State")
@XmlRootElement(name = "State")
@Entity
+@Indexed(index = "eu.etaxonomy.cdm.model.common.DefinedTermBase")
+@Audited
public class State extends OrderedTermBase<State> {
- static Logger logger = Logger.getLogger(State.class);
+ private static final long serialVersionUID = -4816292463790262516L;
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(State.class);
+ protected static Map<UUID, State> termMap = null;
+
// ************* CONSTRUCTORS *************/
/**
* Class constructor: creates a new empty state.
* @see #State(String, String, String)
*/
public State() {
- super();
}
/**
public static State NewInstance(String term, String label, String labelAbbrev){
return new State(term, label, labelAbbrev);
}
+
+//************************** METHODS ********************************
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.model.common.DefinedTermBase#resetTerms()
+ */
+ @Override
+ public void resetTerms(){
+ termMap = null;
+ }
+
+ @Override
+ protected void setDefaultTerms(TermVocabulary<State> termVocabulary){
+ termMap = new HashMap<UUID, State>();
+ for (State term : termVocabulary.getTerms()){
+ termMap.put(term.getUuid(), term);
+ }
+ }
}
\ No newline at end of file