resizing titleCache and fullTitleCache (#1592) and renaming CategoricalData.states...
authorAndreas Müller <a.mueller@bgbm.org>
Tue, 2 Jul 2013 08:00:31 +0000 (08:00 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Tue, 2 Jul 2013 08:00:31 +0000 (08:00 +0000)
23 files changed:
cdmlib-ext/src/test/resources/dbscripts/001-cdm.h2.sql
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/pilotOutputHtml/PilotOutputDocumentBuilder.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/sdd/in/SDDDataSetImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/sdd/in/SDDImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/sdd/out/SDDDocumentBuilder.java
cdmlib-io/src/test/resources/dbscripts/001-cdm.h2.sql
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/IdentifiableEntity.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/CategoricalData.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/TaxonNameBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/reference/IPublicationBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/reference/Reference.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/generate/PolytomousKeyGenerator.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/description/CategoricalDataTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/description/DescriptionElementTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/generate/IdentificationKeyGeneratorTest.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v31_33/SchemaUpdater_31_33.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionElementDaoHibernateImplTest.java
cdmlib-persistence/src/test/resources/dbscripts/001-cdm.h2.sql
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionController.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/AbstractCategoricalDescriptionBuilder.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/NaturalLanguageGeneratorTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TaxonServiceSearchTest.java
cdmlib-services/src/test/resources/dbscripts/001-cdm.h2.sql

index dca87720762103f1ba9c6a36d1a8056eefd6c8ea..d49a22227ca78f2dc4378284a8b6dadf070cc0c2 100644 (file)
@@ -2771,6 +2771,7 @@ CREATE CACHED TABLE PUBLIC.REFERENCE(
     EDITOR VARCHAR(255),
     ISBN VARCHAR(255),
     ISSN VARCHAR(255),
+    DOI VARCHAR(255),
     NOMENCLATURALLYRELEVANT BOOLEAN NOT NULL,
     ORGANIZATION VARCHAR(255),
     PAGES VARCHAR(255),
@@ -2820,6 +2821,7 @@ CREATE CACHED TABLE PUBLIC.REFERENCE_AUD(
     EDITOR VARCHAR(255),
     ISBN VARCHAR(255),
     ISSN VARCHAR(255),
+    DOI VARCHAR(255),
     NOMENCLATURALLYRELEVANT BOOLEAN,
     ORGANIZATION VARCHAR(255),
     PAGES VARCHAR(255),
index 53dae092b1762229b78df567d0383d1679b22ed6..7d122bc169866984a1a807f892ea4235f6aad74e 100644 (file)
@@ -132,7 +132,7 @@ public class PilotOutputDocumentBuilder {
                                        Feature feature = categorical.getFeature();\r
                                        Representation representation = (Representation) feature.getRepresentations().toArray()[0];\r
                                        texte += "<li>Categorical data associated with feature: <b>" + representation.getLabel() + "</b><br/>\nStates: ";\r
-                                       for (Iterator<? extends StateData> sd = categorical.getStates().iterator() ; sd.hasNext() ;){\r
+                                       for (Iterator<? extends StateData> sd = categorical.getStateData().iterator() ; sd.hasNext() ;){\r
                                                StateData stateData = (StateData) sd.next();\r
                                                texte += ((Representation) stateData.getState().getRepresentations().toArray()[0]).getLabel();\r
                                                if (sd.hasNext()) texte += "; "; else texte += ".<br/>\n";\r
index 9edb982c915fa1131d476e22f912982ec6917be4..add26d1919c8a7388ba09fa978d497bcdbb284c4 100644 (file)
@@ -1412,7 +1412,7 @@ public class SDDDataSetImport extends CdmImportBase<SDDImportConfigurator, SDDIm
                                                        stateData.addModifier(modifier);\r
                                                }\r
                                        }\r
-                                       categoricalData.addState(stateData);\r
+                                       categoricalData.addStateData(stateData);\r
                                }\r
                                taxonDescription.addElement(categoricalData);\r
                        }\r
index ba2b795184560ddb257c86a86b5e8b0d0126ffbd..23823664f64ff041f35d1f6d69d714c5df7960ec 100644 (file)
@@ -1405,7 +1405,7 @@ public class SDDImport extends XmlImportBase<SDDImportConfigurator, SDDImportSta
                                                        stateData.addModifier(modifier);\r
                                                }\r
                                        }\r
-                                       categoricalData.addState(stateData);\r
+                                       categoricalData.addStateData(stateData);\r
                                }\r
                                taxonDescription.addElement(categoricalData);\r
                        }\r
index a37f04738ce414b60f8b45570ff55d49deb1ebeb..4f21d4159ac2a38a168d13abe9984f1cf6c300d1 100644 (file)
@@ -920,7 +920,7 @@ public class SDDDocumentBuilder {
                Feature feature = categoricalData.getFeature();\r
                buildReference(feature, characters, REF, categorical, "c",\r
                                charactersCount);\r
-               List<StateData> states = categoricalData.getStates();\r
+               List<StateData> states = categoricalData.getStateData();\r
                for (Iterator<StateData> sd = states.iterator(); sd.hasNext();) {\r
                        StateData stateData = sd.next();\r
                        State s = stateData.getState();\r
index dca87720762103f1ba9c6a36d1a8056eefd6c8ea..d49a22227ca78f2dc4378284a8b6dadf070cc0c2 100644 (file)
@@ -2771,6 +2771,7 @@ CREATE CACHED TABLE PUBLIC.REFERENCE(
     EDITOR VARCHAR(255),
     ISBN VARCHAR(255),
     ISSN VARCHAR(255),
+    DOI VARCHAR(255),
     NOMENCLATURALLYRELEVANT BOOLEAN NOT NULL,
     ORGANIZATION VARCHAR(255),
     PAGES VARCHAR(255),
@@ -2820,6 +2821,7 @@ CREATE CACHED TABLE PUBLIC.REFERENCE_AUD(
     EDITOR VARCHAR(255),
     ISBN VARCHAR(255),
     ISSN VARCHAR(255),
+    DOI VARCHAR(255),
     NOMENCLATURALLYRELEVANT BOOLEAN,
     ORGANIZATION VARCHAR(255),
     PAGES VARCHAR(255),
index 19ab525d24f9ca0b4ca8fc6609156ed6d3a6e226..01947fd5dc4516f8cfcd238561cce65a7c28b11c 100644 (file)
@@ -107,7 +107,7 @@ public abstract class IdentifiableEntity<S extends IIdentifiableEntityCacheStrat
     @Column(length=255, name="titleCache")
     @Match(value=MatchMode.CACHE, cacheReplaceMode=ReplaceMode.ALL)
     @NotEmpty(groups = Level2.class) // implictly NotNull
-    @Size(max = 255)
+    @Size(max = 1023)
     @Fields({
         @Field(store=Store.YES),
         @Field(name = "titleCache__sort", analyze = Analyze.NO, store=Store.YES)
@@ -241,9 +241,9 @@ public abstract class IdentifiableEntity<S extends IIdentifiableEntityCacheStrat
      */
     @Transient
     protected String getTruncatedCache(String cache) {
-        if (cache != null && cache.length() > 255){
+        if (cache != null && cache.length() > 1023){
             logger.warn("Truncation of cache: " + this.toString() + "/" + cache);
-            cache = cache.substring(0, 252) + "...";
+            cache = cache.substring(0, 1020) + "...";
         }
         return cache;
     }
index 26bd12492174bdee23ca57076538486a034fc10f..41f182107ed595f0fbb78b8aa1abd585c357d59c 100644 (file)
@@ -79,7 +79,7 @@ public class CategoricalData extends DescriptionElementBase implements Cloneable
     @Cascade({ CascadeType.SAVE_UPDATE, CascadeType.MERGE, CascadeType.DELETE,CascadeType.DELETE_ORPHAN })
     @IndexedEmbedded(depth = 3)
     @NotEmpty(groups = Level2.class)
-    private List<StateData> states = new ArrayList<StateData>();
+    private List<StateData> stateData = new ArrayList<StateData>();
 
 //****************************** FACTORY METHOD *******************************/
 
@@ -112,7 +112,7 @@ public class CategoricalData extends DescriptionElementBase implements Cloneable
     protected CategoricalData(List<State> states, Feature feature) {
         super(feature);
         for (State state : states){
-               addState(state);
+               addStateData(state);
         }
         
     }
@@ -124,48 +124,48 @@ public class CategoricalData extends DescriptionElementBase implements Cloneable
      * corresponding to <i>this</i> categorical data.
      */
 
-    public List<StateData> getStates(){
-        return this.states;
+    public List<StateData> getStateData(){
+        return this.stateData;
     }
 
     protected void setStates(List<StateData> stateData){
-        this.states = stateData;
+        this.stateData = stateData;
     }
 
 
     /**
-     * Adds a {@link State state} to the list of {@link #getStates() states}
+     * Adds a {@link State state} to the list of {@link #getStateData() states}
      * describing the {@link Feature feature} corresponding to <i>this</i> categorical data.
      *
      * @param state    the state to be added to <i>this</i> categorical data
-     * @see                    #getStates()
+     * @see                    #getStateData()
      */
-    public void addState(StateData state){
-        this.states.add(state);
+    public void addStateData(StateData stateData){
+        this.stateData.add(stateData);
     }
 
     /**
      * Convenience method which creates a state data from a given state with no modifiers
      * and adds it to the list of state data
-     * @see #addState(StateData)
+     * @see #addStateData(StateData)
      * @param state
      */
-    public void addState(State state){
+    public void addStateData(State state){
         StateData stateData = StateData.NewInstance(state);
-        this.states.add(stateData);
+        this.stateData.add(stateData);
     }
 
 
     /**
-     * Removes one element from the set of {@link #getStates() states}
+     * Removes one element from the set of {@link #getStateData() states}
      * describing the {@link Feature feature} corresponding to <i>this</i> categorical data.
      *
      * @param  state   the state which should be removed
-     * @see                    #getStates()
-     * @see                    #addState(State)
+     * @see                    #getStateData()
+     * @see                    #addStateData(State)
      */
-    public void removeState(StateData state){
-        this.states.remove(state);
+    public void removeStateData(StateData stateData){
+        this.stateData.remove(stateData);
     }
 
     //rename to isStateSequenceIntentional ??
@@ -196,7 +196,7 @@ public class CategoricalData extends DescriptionElementBase implements Cloneable
     @Transient
     public List<State> getStatesOnly(){
         List<State> result = new ArrayList<State>();
-        for (StateData stateData : getStates()){
+        for (StateData stateData : getStateData()){
             State state = stateData.getState();
             result.add(state);
         }
@@ -209,13 +209,13 @@ public class CategoricalData extends DescriptionElementBase implements Cloneable
      * @return
      */
     @Transient
-    public List<StateData> setStatesOnly(List<State> states){
-        this.states.clear();
+    public List<StateData> setStateDataOnly(List<State> states){
+        this.stateData.clear();
         for (State state : states){
             StateData stateDate = StateData.NewInstance(state);
-            this.states.add(stateDate);
+            this.stateData.add(stateDate);
         }
-        return this.states;
+        return this.stateData;
     }
 
 
@@ -236,11 +236,11 @@ public class CategoricalData extends DescriptionElementBase implements Cloneable
             CategoricalData result = (CategoricalData)super.clone();
 
             //states
-            result.states = new ArrayList<StateData>();
-            for (StateData stateData : getStates()){
+            result.stateData = new ArrayList<StateData>();
+            for (StateData stateData : getStateData()){
                 //TODO do we need to clone here?
                 //StateData newState = (StateData)stateData.clone();
-                result.states.add(stateData);
+                result.stateData.add(stateData);
             }
 
             return result;
index 1466400ef9e388491589d0b59df0a78bff656e72..93382b6b91d8b10172a4f31c4d80ee6455bf772c 100644 (file)
@@ -121,7 +121,7 @@ public abstract class TaxonNameBase<T extends TaxonNameBase<?,?>, S extends INam
     @Match(value=MatchMode.CACHE, cacheReplaceMode=ReplaceMode.ALL)
     @CacheUpdate(noUpdate ="titleCache")
     @NotEmpty(groups = Level2.class)
-    @Size(max = 330)
+    @Size(max = 1023)
     protected String fullTitleCache;
 
     //if true titleCache will not be automatically generated/updated
index 37356847136cc3f0b2043767af663e42c911ee26..763f363ced3d745070c148b5080d1f9f93fe2ab9 100644 (file)
@@ -51,5 +51,11 @@ public interface IPublicationBase extends IReference {
         */\r
        public void setPublisher(String publisher, String placePublished);\r
 \r
+       /**\r
+        * @return\r
+        */\r
+       public String getDoi();\r
 \r
+       public void setDoi(String doi);\r
+       \r
 }\r
index e91aa44af58ecff3ecade31b2c0baaa9ac8390b2..05dd68ae7ef54faf4410a28196bc0bb18ee0bfad 100644 (file)
@@ -98,6 +98,7 @@ import eu.etaxonomy.cdm.validation.annotation.ReferenceCheck;
     "edition",\r
     "isbn",\r
     "issn",\r
+    "doi",\r
     "seriesPart",\r
     "datePublished",\r
     "publisher",\r
@@ -207,6 +208,14 @@ public class Reference<S extends IReferenceBaseCacheStrategy> extends Identifiab
        @Pattern(regexp = "(?=.{13}$)\\d{1,5}([- ])\\d{1,7}\\1\\d{1,6}\\1(\\d|X)$", groups = Level2.class, message = "{eu.etaxonomy.cdm.model.reference.Reference.isbn.message}")\r
        protected String isbn;\r
 \r
+    @XmlElement(name = "Doi")\r
+    @Field\r
+    @NullOrNotEmpty\r
+       @Length(max = 255)\r
+//     @Pattern(regexp = "(?=.{13}$)\\d{1,5}([- ])\\d{1,7}\\1\\d{1,6}\\1(\\d|X)$", groups = Level2.class, message = "{eu.etaxonomy.cdm.model.reference.Reference.doi.message}")\r
+       protected String doi;\r
+\r
+\r
        @XmlElement(name = "ISSN")\r
     @Field\r
     //TODO Val #3379\r
@@ -473,6 +482,16 @@ public class Reference<S extends IReferenceBaseCacheStrategy> extends Identifiab
     public void setIssn(String issn) {\r
                this.issn = issn;\r
        }\r
+       \r
+    @Override\r
+       public String getDoi() {\r
+               return doi;\r
+       }\r
+\r
+    @Override\r
+       public void setDoi(String doi) {\r
+               this.doi = doi;\r
+       }\r
 \r
        @Override\r
     public String getSeriesPart() {\r
index d24657c5233c25d8ae247ec0b26787ec439aac20..628a0b2bc70e590f915a147517c75b44a8d4bad4 100644 (file)
@@ -436,7 +436,7 @@ public class PolytomousKeyGenerator {
        private Map<Set<TaxonDescription>,List<State>> determineCategoricalStates(List<State> statesDone, CategoricalData categoricalData, Feature feature, Set<TaxonDescription> taxaCovered){
                Map<Set<TaxonDescription>,List<State>> childrenStatesMap = new HashMap<Set<TaxonDescription>,List<State>>();
 
-               List<StateData> stateDatas = categoricalData.getStates();
+               List<StateData> stateDatas = categoricalData.getStateData();
 
                List<State> states = new ArrayList<State>();
                for (StateData sd : stateDatas){
@@ -474,7 +474,7 @@ public class PolytomousKeyGenerator {
                        for (DescriptionElementBase deb : elements){
                                if (deb.isInstanceOf(CategoricalData.class)) {
                                        if (deb.getFeature().equals(feature)) {
-                                               List<StateData> stateDatas = ((CategoricalData)deb).getStates();
+                                               List<StateData> stateDatas = ((CategoricalData)deb).getStateData();
                                                for (StateData sd : stateDatas) {
                                                        if (sd.getState().equals(featureState)){
                                                                newCoveredTaxa.add(td);
@@ -535,7 +535,7 @@ public class PolytomousKeyGenerator {
                                                        if (deb.isInstanceOf(CategoricalData.class)) {
                                                                CategoricalData catdat = (CategoricalData)deb;
                                                                if (catdat.getFeature().equals(feature)) {
-                                                                       List<StateData> stateDatas = catdat.getStates();
+                                                                       List<StateData> stateDatas = catdat.getStateData();
                                                                        for (StateData sd : stateDatas) {
                                                                                differentStates.add(sd.getState());
                                                                        }
@@ -838,12 +838,12 @@ public class PolytomousKeyGenerator {
                                {
                                        CategoricalData cat1 = (CategoricalData)deb1;
                                        CategoricalData cat2 = (CategoricalData)deb2;
-                                       for (StateData statedata1 : cat1.getStates()){
+                                       for (StateData statedata1 : cat1.getStateData()){
                                                State state1 = statedata1.getState();
                                                if (!exclusions.containsKey(state1)){
                                                        exclusions.put(state1, new HashSet<State>());
                                                }
-                                               for (StateData statedata2 : cat2.getStates()){
+                                               for (StateData statedata2 : cat2.getStateData()){
                                                        State state2 = statedata2.getState();
                                                        if (!exclusions.containsKey(state2)){
                                                                exclusions.put(state2, new HashSet<State>());
@@ -886,8 +886,8 @@ public class PolytomousKeyGenerator {
         * @return
         */
        private float defaultCategoricalPower(CategoricalData deb1, CategoricalData deb2){
-               List<StateData> states1 = deb1.getStates();
-               List<StateData> states2 = deb2.getStates();
+               List<StateData> states1 = deb1.getStateData();
+               List<StateData> states2 = deb2.getStateData();
                boolean bool = false;
                Iterator<StateData> stateData1Iterator = states1.iterator() ;
                //              while (!bool && stateData1Iterator.hasNext()) {
index 0152b79af7553f95682793dc69ed75be76f913e1..57cc62d7f4992667b449bf74126540be3942a129 100644 (file)
@@ -53,10 +53,10 @@ public class CategoricalDataTest {
         useCategoryVocabulary.addTerm(useCategory2);\r
 \r
         StateData stateData = StateData.NewInstance(useCategory1);\r
-        data.addState(stateData);\r
+        data.addStateData(stateData);\r
         StateData stateData2 = StateData.NewInstance(useCategory2);\r
         stateData2.addModifier(DefinedTerm.NewModifierInstance(null, "Any modifer", null));\r
-        data.addState(stateData2);\r
+        data.addStateData(stateData2);\r
 \r
         List<State> states = data.getStatesOnly();\r
         Assert.assertEquals("There should be 2 states", 2, states.size());\r
@@ -64,7 +64,7 @@ public class CategoricalDataTest {
     }\r
 \r
     /**\r
-     * Test method for {@link eu.etaxonomy.cdm.model.description.CategoricalData#setStatesOnly(List)}.\r
+     * Test method for {@link eu.etaxonomy.cdm.model.description.CategoricalData#setStateDataOnly(List)}.\r
      */\r
     @Test\r
     public void testSetStatesOnly() {\r
@@ -74,8 +74,8 @@ public class CategoricalDataTest {
         TermVocabulary<State> useCategoryVocabulary = TermVocabulary.NewInstance(TermType.Feature,"Use category vocabulary", "use categories", null, null);\r
         State useCategory1 = State.NewInstance("My first use category", "use category 1", null);\r
         useCategoryVocabulary.addTerm(useCategory1);\r
-        data.addState(useCategory1);\r
-        Assert.assertEquals("There should be 1 state now", 1, data.getStates().size());\r
+        data.addStateData(useCategory1);\r
+        Assert.assertEquals("There should be 1 state now", 1, data.getStateData().size());\r
 \r
         State useCategory2 = State.NewInstance("My favorite use category", "use category 2", null);\r
         useCategoryVocabulary.addTerm(useCategory2);\r
@@ -85,9 +85,9 @@ public class CategoricalDataTest {
         newStates.addAll(Arrays.asList(useCategory2, useCategory3));\r
 \r
         // setting new states and thus removing useCategory1\r
-        List<StateData> stateDataList = data.setStatesOnly(newStates);\r
+        List<StateData> stateDataList = data.setStateDataOnly(newStates);\r
         Assert.assertEquals("There should be 2 StateData objects", 2, stateDataList.size());\r
-        Assert.assertEquals("There should be 2 StateData objects", 2, data.getStates().size());\r
+        Assert.assertEquals("There should be 2 StateData objects", 2, data.getStateData().size());\r
         Assert.assertFalse("Category 1 should not be included anymore", data.getStatesOnly().contains(useCategory1));\r
         Assert.assertTrue("Category 2 should be included", data.getStatesOnly().contains(useCategory2));\r
 \r
index 510ee7d1a5b810052c39c92fb53bb617cb4af08e..e35c4969fc71ea607096b7c9087ade3da72f1c01 100644 (file)
@@ -75,7 +75,7 @@ private static Logger logger = Logger.getLogger(DescriptionElementTest.class);
                source.setCitation(citation);\r
                categorialData.addSource(source );\r
                StateData state = StateData.NewInstance();\r
-               categorialData.addState(state);\r
+               categorialData.addStateData(state);\r
                \r
                indAssociation = IndividualsAssociation.NewInstance();\r
                \r
@@ -109,8 +109,8 @@ private static Logger logger = Logger.getLogger(DescriptionElementTest.class);
        @Test\r
        public void testCloneCategorialData(){\r
                CategoricalData clone = (CategoricalData)categorialData.clone();\r
-               assertEquals(clone.getStates().size(),categorialData.getStates().size() );\r
-               assertSame(clone.getStates().get(0), categorialData.getStates().get(0));\r
+               assertEquals(clone.getStateData().size(),categorialData.getStateData().size() );\r
+               assertSame(clone.getStateData().get(0), categorialData.getStateData().get(0));\r
                assertNotSame(clone, categorialData);\r
                        \r
        }\r
@@ -144,7 +144,7 @@ private static Logger logger = Logger.getLogger(DescriptionElementTest.class);
                CategoricalData data = CategoricalData.NewInstance();\r
                desc.addElement(data);\r
                StateData stateData = StateData.NewInstance();\r
-               data.addState(stateData);\r
+               data.addStateData(stateData);\r
                \r
                TermType modifierType = TermType.Modifier;\r
                TermVocabulary<DefinedTerm> plantPartVoc = TermVocabulary.NewInstance(modifierType,"plant parts", "plant parts", "parts", null);\r
index 86d4bfcec0cdbf58fba65f5d54b489c0a0c22ceb..11a6e57569c12c1b4b4e7827b36dbb4a3275c301 100644 (file)
@@ -99,49 +99,49 @@ public class IdentificationKeyGeneratorTest {
                State s11 = State.NewInstance("","Triangular","");\r
                State s12 = State.NewInstance("","Circular","");\r
                sd11.setState(s11);\r
-               catd11.addState(sd11);\r
+               catd11.addStateData(sd11);\r
                \r
                CategoricalData catd12 = CategoricalData.NewInstance();\r
                catd12.setFeature(feature1);\r
                StateData sd12 = StateData.NewInstance();\r
                sd12.setState(s11);\r
-               catd12.addState(sd12);\r
+               catd12.addStateData(sd12);\r
                \r
                CategoricalData catd13 = CategoricalData.NewInstance();\r
                catd13.setFeature(feature1);\r
                StateData sd13 = StateData.NewInstance();\r
                sd13.setState(s11);\r
-               catd13.addState(sd13);\r
+               catd13.addStateData(sd13);\r
                \r
                CategoricalData catd14 = CategoricalData.NewInstance();\r
                catd14.setFeature(feature1);\r
                StateData sd14 = StateData.NewInstance();\r
                sd14.setState(s11);\r
-               catd14.addState(sd14);\r
+               catd14.addStateData(sd14);\r
                \r
                CategoricalData catd15 = CategoricalData.NewInstance();\r
                catd15.setFeature(feature1);\r
                StateData sd15 = StateData.NewInstance();\r
                sd15.setState(s12);\r
-               catd15.addState(sd15);\r
+               catd15.addStateData(sd15);\r
                \r
                CategoricalData catd16 = CategoricalData.NewInstance();\r
                catd16.setFeature(feature1);\r
                StateData sd16 = StateData.NewInstance();\r
                sd16.setState(s12);\r
-               catd16.addState(sd16);\r
+               catd16.addStateData(sd16);\r
                \r
                CategoricalData catd17 = CategoricalData.NewInstance();\r
                catd17.setFeature(feature1);\r
                StateData sd17 = StateData.NewInstance();\r
                sd17.setState(s12);\r
-               catd17.addState(sd17);\r
+               catd17.addStateData(sd17);\r
                \r
                CategoricalData catd18 = CategoricalData.NewInstance();\r
                catd18.setFeature(feature1);\r
                StateData sd18 = StateData.NewInstance();\r
                sd18.setState(s12);\r
-               catd18.addState(sd18);\r
+               catd18.addStateData(sd18);\r
                \r
                /*************************/\r
                \r
@@ -151,49 +151,49 @@ public class IdentificationKeyGeneratorTest {
                State s21 = State.NewInstance("","Yes","");\r
                State s22 = State.NewInstance("","No","");\r
                sd21.setState(s21);\r
-               catd21.addState(sd21);\r
+               catd21.addStateData(sd21);\r
                \r
                CategoricalData catd22 = CategoricalData.NewInstance();\r
                catd22.setFeature(feature2);\r
                StateData sd22 = StateData.NewInstance();\r
                sd22.setState(s21);\r
-               catd22.addState(sd22);\r
+               catd22.addStateData(sd22);\r
                \r
                CategoricalData catd23 = CategoricalData.NewInstance();\r
                catd23.setFeature(feature2);\r
                StateData sd23 = StateData.NewInstance();\r
                sd23.setState(s21);\r
-               catd23.addState(sd23);\r
+               catd23.addStateData(sd23);\r
                \r
                CategoricalData catd24 = CategoricalData.NewInstance();\r
                catd24.setFeature(feature2);\r
                StateData sd24 = StateData.NewInstance();\r
                sd24.setState(s21);\r
-               catd24.addState(sd24);\r
+               catd24.addStateData(sd24);\r
                \r
                CategoricalData catd25 = CategoricalData.NewInstance();\r
                catd25.setFeature(feature2);\r
                StateData sd25 = StateData.NewInstance();\r
                sd25.setState(s21);\r
-               catd25.addState(sd25);\r
+               catd25.addStateData(sd25);\r
                \r
                CategoricalData catd26 = CategoricalData.NewInstance();\r
                catd26.setFeature(feature2);\r
                StateData sd26 = StateData.NewInstance();\r
                sd26.setState(s21);\r
-               catd26.addState(sd26);\r
+               catd26.addStateData(sd26);\r
                \r
                CategoricalData catd27 = CategoricalData.NewInstance();\r
                catd27.setFeature(feature2);\r
                StateData sd27 = StateData.NewInstance();\r
                sd27.setState(s21);\r
-               catd27.addState(sd27);\r
+               catd27.addStateData(sd27);\r
                \r
                CategoricalData catd28 = CategoricalData.NewInstance();\r
                catd28.setFeature(feature2);\r
                StateData sd28 = StateData.NewInstance();\r
                sd28.setState(s22);\r
-               catd28.addState(sd28);\r
+               catd28.addStateData(sd28);\r
                \r
                /*************************/\r
                \r
@@ -301,49 +301,49 @@ public class IdentificationKeyGeneratorTest {
                State s41 = State.NewInstance("","Blue","");\r
                State s42 = State.NewInstance("","Yellow","");\r
                sd41.setState(s41);\r
-               catd41.addState(sd41);\r
+               catd41.addStateData(sd41);\r
                \r
                CategoricalData catd42 = CategoricalData.NewInstance();\r
                catd42.setFeature(feature4);\r
                StateData sd42 = StateData.NewInstance();\r
                sd42.setState(s42);\r
-               catd42.addState(sd42);\r
+               catd42.addStateData(sd42);\r
                \r
                CategoricalData catd43 = CategoricalData.NewInstance();\r
                catd43.setFeature(feature4);\r
                StateData sd43 = StateData.NewInstance();\r
                sd43.setState(s41);\r
-               catd43.addState(sd43);\r
+               catd43.addStateData(sd43);\r
                \r
                CategoricalData catd44 = CategoricalData.NewInstance();\r
                catd44.setFeature(feature4);\r
                StateData sd44 = StateData.NewInstance();\r
                sd44.setState(s42);\r
-               catd44.addState(sd44);\r
+               catd44.addStateData(sd44);\r
                \r
                CategoricalData catd45 = CategoricalData.NewInstance();\r
                catd45.setFeature(feature4);\r
                StateData sd45 = StateData.NewInstance();\r
                sd45.setState(s41);\r
-               catd45.addState(sd45);\r
+               catd45.addStateData(sd45);\r
                \r
                CategoricalData catd46 = CategoricalData.NewInstance();\r
                catd46.setFeature(feature4);\r
                StateData sd46 = StateData.NewInstance();\r
                sd46.setState(s41);\r
-               catd46.addState(sd46);\r
+               catd46.addStateData(sd46);\r
                \r
                CategoricalData catd47 = CategoricalData.NewInstance();\r
                catd47.setFeature(feature4);\r
                StateData sd47 = StateData.NewInstance();\r
                sd47.setState(s41);\r
-               catd47.addState(sd47);\r
+               catd47.addStateData(sd47);\r
                \r
                CategoricalData catd48 = CategoricalData.NewInstance();\r
                catd48.setFeature(feature4);\r
                StateData sd48 = StateData.NewInstance();\r
                sd48.setState(s41);\r
-               catd48.addState(sd48);\r
+               catd48.addStateData(sd48);\r
                \r
                /*************************/\r
                \r
index 08b014286a79e15e8c79d415b3cbd734183ecc0e..846b478534427d7afca0cd905c1eebab5d5e35f0 100644 (file)
@@ -209,6 +209,9 @@ public class SchemaUpdater_31_33 extends SchemaUpdaterBase {
                //TODO remove citation_id and citationmicroreference columns from Media table #2541
                //first check if columns are always empty
                
+               //TODO update length of all title caches and full title cache in names
+               //https://dev.e-taxonomy.eu/trac/ticket/1592
+               
                
                return stepList;
        }
index 313ba6753b144d4eb1f9e2dbf8dca00b106ef48f..4445984fe912be836de7c55b9649286c3ceb559a 100644 (file)
@@ -266,7 +266,7 @@ public class DescriptionElementDaoHibernateImplTest extends CdmTransactionalInte
                stateData.putModifyingText(Language.ENGLISH(), "test modifier");\r
                LanguageString langString = stateData.getModifyingText().get(Language.ENGLISH());\r
                langString.setUuid(UUID.fromString("53a91bd4-d758-47ec-a385-94799bdb9f32"));\r
-               data.addState(stateData);\r
+               data.addStateData(stateData);\r
 //             Modifier modifier = Modifier.NewInstance("my test modifier", "test", null);\r
 //             TODO still throws JDBC batch update exception, one reason may be that in hibernate_sequence nextVal for definedtermbase is "1"\r
 //             stateData.addModifier(modifier);\r
index dca87720762103f1ba9c6a36d1a8056eefd6c8ea..d49a22227ca78f2dc4378284a8b6dadf070cc0c2 100644 (file)
@@ -2771,6 +2771,7 @@ CREATE CACHED TABLE PUBLIC.REFERENCE(
     EDITOR VARCHAR(255),
     ISBN VARCHAR(255),
     ISSN VARCHAR(255),
+    DOI VARCHAR(255),
     NOMENCLATURALLYRELEVANT BOOLEAN NOT NULL,
     ORGANIZATION VARCHAR(255),
     PAGES VARCHAR(255),
@@ -2820,6 +2821,7 @@ CREATE CACHED TABLE PUBLIC.REFERENCE_AUD(
     EDITOR VARCHAR(255),
     ISBN VARCHAR(255),
     ISSN VARCHAR(255),
+    DOI VARCHAR(255),
     NOMENCLATURALLYRELEVANT BOOLEAN,
     ORGANIZATION VARCHAR(255),
     PAGES VARCHAR(255),
index c13591e162f8bb182cc9b7a57ef6743c74c688cd..3edf3197a5f744165ac1bf063c4b6c21e131c283 100644 (file)
@@ -177,7 +177,7 @@ public class DescriptionController extends BaseController<DescriptionBase, IDesc
         if(descriptionElement instanceof CategoricalData){
 
         }
-        List<StateData> states = ((CategoricalData)descriptionElement).getStates();
+        List<StateData> states = ((CategoricalData)descriptionElement).getStateData();
         mv.addObject(states);
         return mv;
     }
index f7fb7e2a37e12484f0ac315b58088015e385bb8a..1a3f376468b72c3e59c3434e89c8ddd16d19ca03 100644 (file)
@@ -10,7 +10,7 @@ import eu.etaxonomy.cdm.model.description.TextData;
 public abstract class AbstractCategoricalDescriptionBuilder extends DescriptionBuilder<CategoricalData>{
        
        public TextData build(CategoricalData data, List<Language> languages) {
-                  return doBuild(data.getStates(), languages);
+                  return doBuild(data.getStateData(), languages);
                 }
 
        protected abstract TextData doBuild(List<StateData> stateDatas, List<Language> languages);
index e14fb5ddc96f6cdf8e1be3454deb295a394ff9fd..5aa53991e6cd573c4ef6cea252964b40656e9dcc 100644 (file)
@@ -69,7 +69,7 @@ public class NaturalLanguageGeneratorTest extends CdmIntegrationTest {
                        State state = State.NewInstance(null, feature.getLabel()+"state", null);
                        StateData stateData = StateData.NewInstance();
                        stateData.setState(state);
-                       cg.addState(stateData);
+                       cg.addStateData(stateData);
                        description.addElement(cg);
                }
                Feature qFeature = Feature.NewInstance(null, "c", null);
index 68e6b7a31f5ffe2e9eac0946a77a71dcd77f1224..46372d7a45f38e174857d3f297fc8e6d790745ae 100644 (file)
@@ -702,7 +702,7 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
 \r
         StateData statedata = StateData.NewInstance(state);\r
         statedata.putModifyingText(Language.ENGLISH(), "always, even during winter");\r
-        cdata.addState(statedata);\r
+        cdata.addStateData(statedata);\r
         d_abies_balsamea.addElement(cdata);\r
 \r
         termService.save(state);\r
index dca87720762103f1ba9c6a36d1a8056eefd6c8ea..d49a22227ca78f2dc4378284a8b6dadf070cc0c2 100644 (file)
@@ -2771,6 +2771,7 @@ CREATE CACHED TABLE PUBLIC.REFERENCE(
     EDITOR VARCHAR(255),
     ISBN VARCHAR(255),
     ISSN VARCHAR(255),
+    DOI VARCHAR(255),
     NOMENCLATURALLYRELEVANT BOOLEAN NOT NULL,
     ORGANIZATION VARCHAR(255),
     PAGES VARCHAR(255),
@@ -2820,6 +2821,7 @@ CREATE CACHED TABLE PUBLIC.REFERENCE_AUD(
     EDITOR VARCHAR(255),
     ISBN VARCHAR(255),
     ISSN VARCHAR(255),
+    DOI VARCHAR(255),
     NOMENCLATURALLYRELEVANT BOOLEAN,
     ORGANIZATION VARCHAR(255),
     PAGES VARCHAR(255),