Major changes to the cdmlib default term loading and initialization, plus indexing...
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / common / OrderedTermVocabulary.java
index b0ea2e0508280e01a66f15e0930236c0f657ffe8..cf9425aa6468e5db709022d1c033008d56e8847d 100644 (file)
@@ -11,6 +11,10 @@ import java.util.TreeSet;
 \r
 import javax.persistence.Entity;\r
 import javax.persistence.Transient;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlRootElement;\r
+import javax.xml.bind.annotation.XmlType;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
@@ -18,29 +22,32 @@ import org.apache.log4j.Logger;
  * @author a.mueller\r
  *\r
  */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "OrderedTermVocabulary")\r
+@XmlRootElement(name = "OrderedTermVocabulary")\r
 @Entity\r
+//@Audited\r
 public class OrderedTermVocabulary<T extends OrderedTermBase> extends TermVocabulary<T> {\r
+       private static final long serialVersionUID = 7871741306306371242L;\r
+       @SuppressWarnings("unused")\r
        private static final Logger logger = Logger.getLogger(OrderedTermVocabulary.class);\r
-       \r
-       /**\r
-        * \r
-        */\r
-       public OrderedTermVocabulary() {\r
-               super();\r
-       }\r
 \r
        /**\r
         * @param term\r
         * @param label\r
         * @param termSourceUri\r
         */\r
-       public OrderedTermVocabulary(String term, String label, String termSourceUri) {\r
-               super(term, label, termSourceUri);\r
+       public OrderedTermVocabulary(String term, String label, String labelAbbrev, String termSourceUri) {\r
+               super(term, label, labelAbbrev, termSourceUri);\r
+       }\r
+\r
+       public OrderedTermVocabulary() {\r
+               super();\r
        }\r
        \r
-       @Override\r
        @Transient\r
-       protected Set<T> getNewTermSet(){\r
+       @Override\r
+       public Set<T> getNewTermSet() {\r
                return new TreeSet<T>();\r
        }\r
 \r
@@ -143,14 +150,14 @@ public class OrderedTermVocabulary<T extends OrderedTermBase> extends TermVocabu
        }\r
        \r
        @Override\r
-       public void addTerm(T term) throws WrongTermTypeException {\r
-               SortedSet sortedTerms = ((SortedSet<T>)terms);\r
+       public void addTerm(T term) {\r
+               SortedSet<T> sortedTerms = (SortedSet<T>)terms;\r
                int lowestOrderIndex;\r
                if (sortedTerms.size() == 0){\r
                        lowestOrderIndex = 0;\r
                }else{\r
-                       Object first = (T)sortedTerms.first();\r
-                       lowestOrderIndex = ((T)first).orderIndex;\r
+                       T first = sortedTerms.first();\r
+                       lowestOrderIndex = first.orderIndex;\r
                }\r
                term.orderIndex = lowestOrderIndex + 1;\r
                super.addTerm(term);    \r
@@ -184,11 +191,11 @@ public class OrderedTermVocabulary<T extends OrderedTermBase> extends TermVocabu
                super.addTerm(termToBeAdded);\r
        }\r
        \r
-//     public void addTermEqualLevel(T termToBeAdded, T equalLevelTerm) throws WrongTermTypeException {\r
-//             int orderInd = equalLevelTerm.orderIndex;\r
-//             termToBeAdded.orderIndex = orderInd;\r
-//             super.addTerm(termToBeAdded);\r
-//     }\r
+       public void addTermEqualLevel(T termToBeAdded, T equalLevelTerm) throws WrongTermTypeException {\r
+               int orderInd = equalLevelTerm.orderIndex;\r
+               termToBeAdded.orderIndex = orderInd;\r
+               super.addTerm(termToBeAdded);\r
+       }\r
        \r
        @Override\r
        public void removeTerm(T term) {\r
@@ -204,7 +211,7 @@ public class OrderedTermVocabulary<T extends OrderedTermBase> extends TermVocabu
                                toBeChangedByObject = null;\r
                        }\r
                }\r
-               term.setVocabulary(null);\r
+               super.removeTerm(term);\r
        }\r
        \r
        private T toBeChangedByObject;\r