added barcode to derived unit #1689
authorAndreas Müller <a.mueller@bgbm.org>
Tue, 21 Sep 2010 12:25:07 +0000 (12:25 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Tue, 21 Sep 2010 12:25:07 +0000 (12:25 +0000)
cdmlib-io/src/test/resources/dbscripts/001_cdm.ddl
cdmlib-io/src/test/resources/eu/etaxonomy/cdm/io/dataset.dtd
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/occurrence/DerivedUnitBase.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/ColumnAdder.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/SchemaUpdater_3_0.java
cdmlib-persistence/src/test/resources/dbscripts/001_cdm.ddl
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/dao/hibernate/dataset.dtd
cdmlib-services/src/test/resources/dbscripts/001_cdm.ddl

index 3dd0dacaeae0baca20cb76e7effc5aa966810832..721e6fe7d8e4e7443b32a59667f54fc6915e38c6 100644 (file)
         collectorsnumber varchar(255),
         fieldnotes varchar(255),
         fieldnumber varchar(255),
+        barcode varchar(255),
         createdby_id integer,
         updatedby_id integer,
         lifestage_id integer,
         sex_id integer,
         fieldnotes varchar(255),
         fieldnumber varchar(255),
+        barcode varchar(255),
         gatheringevent_id integer,
         accessionnumber varchar(255),
         catalognumber varchar(255),
index 0b47705bda720e80e52cbc7b533d4475afaaa6fc..677379003a0f43f149dff9417bc66b7a2f3566ce 100644 (file)
     COLLECTORSNUMBER CDATA #IMPLIED
     FIELDNOTES CDATA #IMPLIED
     FIELDNUMBER CDATA #IMPLIED
+    BARCODE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     LIFESTAGE_ID CDATA #IMPLIED
     SEX_ID CDATA #IMPLIED
     FIELDNOTES CDATA #IMPLIED
     FIELDNUMBER CDATA #IMPLIED
+    BARCODE CDATA #IMPLIED
     GATHERINGEVENT_ID CDATA #IMPLIED
     ACCESSIONNUMBER CDATA #IMPLIED
     CATALOGNUMBER CDATA #IMPLIED
index 3a352f9d62f023a1a1adf4ef4a1673465892db6c..f6f2120d767b386811ec29ecfea390d3cc2070c2 100644 (file)
@@ -52,7 +52,8 @@ import eu.etaxonomy.cdm.validation.annotation.NullOrNotEmpty;
     "storedUnder",
     "derivationEvent",
     "accessionNumber",
-    "collectorsNumber"
+    "collectorsNumber",
+    "barcode"
 })
 @XmlRootElement(name = "DerivedUnitBase")
 @Entity
@@ -86,6 +87,12 @@ public abstract class DerivedUnitBase<S extends IIdentifiableEntityCacheStrategy
        @Length(max = 255)
        private String collectorsNumber;
        
+       @XmlElement(name = "Barcode")
+       @Field(index=Index.UN_TOKENIZED)
+       @NullOrNotEmpty
+       @Length(max = 255)
+       private String barcode;
+       
        @XmlElement(name = "StoredUnder")
        @XmlIDREF
        @XmlSchemaType(name = "IDREF")
@@ -169,6 +176,13 @@ public abstract class DerivedUnitBase<S extends IIdentifiableEntityCacheStrategy
                this.catalogNumber = catalogNumber;
        }
        
+       public void setBarcode(String barcode) {
+               this.barcode = barcode;
+       }
+       public String getBarcode() {
+               return barcode;
+       }
+       
        public void setStoredUnder(TaxonNameBase storedUnder) {
                this.storedUnder = storedUnder;
        }
@@ -218,4 +232,5 @@ public abstract class DerivedUnitBase<S extends IIdentifiableEntityCacheStrategy
                //no changes to: accessionNumber, catalogNumber, collectorsNumber
                return result;
        }
+
 }
index d8c9c450fe1a7ac9bb33ac7c9a8fa45382f5a56d..fcd4e84cea164d3f8c1d89a1305b0697384d3e19 100644 (file)
@@ -40,6 +40,10 @@ public class ColumnAdder extends SchemaUpdaterStepBase implements ISchemaUpdater
                return new ColumnAdder(stepName, tableName, newColumnName, "bit", includeAudTable, defaultValue);\r
        }\r
        \r
+       public static final ColumnAdder NewStringInstance(String stepName, String tableName, String newColumnName, boolean includeAudTable){\r
+               return new ColumnAdder(stepName, tableName, newColumnName, "nvarchar(255)", includeAudTable, null);\r
+       }\r
+       \r
        protected ColumnAdder(String stepName, String tableName, String newColumnName, String columnType, boolean includeAudTable, Object defaultValue) {\r
                super(stepName);\r
                this.tableName = tableName;\r
@@ -55,14 +59,23 @@ public class ColumnAdder extends SchemaUpdaterStepBase implements ISchemaUpdater
        @Override\r
        public Integer invoke(ICdmDataSource datasource, IProgressMonitor monitor) throws SQLException {\r
                boolean result = true;\r
-               result &= addColumn(tableName, newColumnName, columnType, datasource, monitor);\r
+               String databaseColumnType = getDatabaseColumnType(datasource, columnType);\r
+               result &= addColumn(tableName, newColumnName, databaseColumnType, datasource, monitor);\r
                if (includeAudTable){\r
                        String aud = "_AUD";\r
-                       result &= addColumn(tableName + aud, newColumnName, columnType, datasource, monitor);\r
+                       result &= addColumn(tableName + aud, newColumnName, databaseColumnType, datasource, monitor);\r
                }\r
                return (result == true )? 0 : null;\r
        }\r
 \r
+       private String getDatabaseColumnType(ICdmDataSource datasource, String columnType) {\r
+               String result = columnType;\r
+               if (datasource.getDatabaseType().equals(DatabaseTypeEnum.PostgreSQL)){\r
+                       result = result.replace("nvarchar", "varchar");\r
+               }\r
+               return result;\r
+       }\r
+\r
        private boolean addColumn(String tableName, String newColumnName, String columnType, ICdmDataSource datasource, IProgressMonitor monitor) {\r
                DatabaseTypeEnum type = datasource.getDatabaseType();\r
                String updateQuery;\r
index efa5a981e3297c73f17789b6a694d9f1e4aa9ed2..ec90fb4f4031570bcfa67490e442a547285ce020 100644 (file)
@@ -93,10 +93,10 @@ public class SchemaUpdater_3_0 extends SchemaUpdaterBase implements ISchemaUpdat
                step = ColumnAdder.NewBooleanInstance(stepName, "TaxonBase", "excluded", INCLUDE_AUDIT, defaultValue);\r
                stepList.add(step);\r
 \r
-//             //add barcode to derived unit base\r
-//             stepName = "Add barcode to specimen";\r
-//             step = ColumnAdder.NewStringInstance(stepName, "SpecimenOrObservationBase", "barcode", INCLUDE_AUDIT);\r
-//             stepList.add(step);\r
+               //add barcode to derived unit base\r
+               stepName = "Add barcode to specimen";\r
+               step = ColumnAdder.NewStringInstance(stepName, "SpecimenOrObservationBase", "barcode", INCLUDE_AUDIT);\r
+               stepList.add(step);\r
 \r
                \r
 //             //rename taxonomicTree -> classification\r
index c05b3a7bc096ebf4a47aaa9ad108a7f21331d7e6..c49c2bfe3691d1b7fcf4fbc9001307be82325983 100644 (file)
         accessionnumber varchar(255),
         catalognumber varchar(255),
         collectorsnumber varchar(255),
+        barcode varchar(255),
         fieldnotes varchar(255),
         fieldnumber varchar(255),
         createdby_id integer,
         sex_id integer,
         fieldnotes varchar(255),
         fieldnumber varchar(255),
+        barcode varchar(255),
         gatheringevent_id integer,
         accessionnumber varchar(255),
         catalognumber varchar(255),
index 233048f956b58404a86e82846d7d30c5e2d08233..88e3f89112a474f2ea1f2589d165c8ea005eff9f 100644 (file)
     COLLECTORSNUMBER CDATA #IMPLIED
     FIELDNOTES CDATA #IMPLIED
     FIELDNUMBER CDATA #IMPLIED
+    BARCODE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     LIFESTAGE_ID CDATA #IMPLIED
     STOREDUNDER_ID CDATA #IMPLIED
     FIELDNOTES CDATA #IMPLIED
     FIELDNUMBER CDATA #IMPLIED
+    BARCODE CDATA #IMPLIED
     GATHERINGEVENT_ID CDATA #IMPLIED
     PRESERVATION_ID CDATA #IMPLIED
 >
index c7162cab3636484bf6e30860a5bf2225f03de32e..0dac6c110da00f909858b9a822b7bf26e6887bba 100644 (file)
         collectorsnumber varchar(255),
         fieldnotes varchar(255),
         fieldnumber varchar(255),
+        barcode varchar(255),
         createdby_id integer,
         updatedby_id integer,
         lifestage_id integer,
         preservation_id integer,
         fieldnotes varchar(255),
         fieldnumber varchar(255),
+        barcode varchar(255),
         gatheringevent_id integer,
         primary key (id, REV)
     );