Berlin MOdel Import and Export bugfixing, and new signature for Name.addBasionym...
authorAndreas Müller <a.mueller@bgbm.org>
Mon, 25 May 2009 17:13:33 +0000 (17:13 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Mon, 25 May 2009 17:13:33 +0000 (17:13 +0000)
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/BerlinModelFactsImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/BerlinModelImportBase.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/BerlinModelTaxonImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/BerlinModelTaxonNameRelationImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelAuthorTeamExport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/CreatedAndNotesMapper.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/ImportHelper.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/tcsrdf/TcsRdfTaxonNameRelationsImport.java

index 1cdf0705ffa4a535c749003aec19d527e269ecd3..767299b00d4ca15140c695a15b0f8e61e4a5d666 100644 (file)
@@ -9,10 +9,6 @@
 \r
 package eu.etaxonomy.cdm.io.berlinModel;\r
 \r
-import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.FACT_DESCRIPTION;\r
-import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.FACT_DISTRIBUTION_EM;\r
-import static eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer.FACT_OBSERVATION;\r
-\r
 import java.sql.ResultSet;\r
 import java.sql.SQLException;\r
 import java.util.Collection;\r
@@ -277,11 +273,11 @@ public class BerlinModelFactsImport  extends BerlinModelImportBase {
                                                \r
                                                //TODO\r
                                                //References\r
-                                               //etc.\r
+                                               //factId, \r
                                                \r
-                                               //TODO created, notes\r
-                                               //doIdCreatedUpdatedNotes(bmiConfig, textData, rs, factId);\r
-       \r
+                                               //etc.\r
+                                               doCreatedUpdatedNotes(bmiConfig, textData, rs, "Fact");\r
+\r
                                                \r
                                                taxonStore.add(taxon);\r
                                        }else{\r
index bbe8001b1a7909adf98fcac456a9b856cff914a6..50068e581443b2dc803ba25a5e97498006ad3d07 100644 (file)
@@ -23,7 +23,9 @@ import eu.etaxonomy.cdm.io.common.ICdmIO;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator;\r
 import eu.etaxonomy.cdm.io.common.ImportHelper;\r
 import eu.etaxonomy.cdm.io.common.Source;\r
+import eu.etaxonomy.cdm.model.common.AnnotatableEntity;\r
 import eu.etaxonomy.cdm.model.common.Annotation;\r
+import eu.etaxonomy.cdm.model.common.AnnotationType;\r
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 \r
@@ -42,7 +44,18 @@ public abstract class BerlinModelImportBase extends CdmIoBase<IImportConfigurato
        \r
        protected boolean doIdCreatedUpdatedNotes(IImportConfigurator bmiConfig, IdentifiableEntity identifiableEntity, ResultSet rs, long id, String namespace)\r
                        throws SQLException{\r
-               \r
+               boolean success = true;\r
+               //id\r
+               success &= ImportHelper.setOriginalSource(identifiableEntity, bmiConfig.getSourceReference(), id, namespace);\r
+               //createdUpdateNotes\r
+               success &= doCreatedUpdatedNotes(bmiConfig, identifiableEntity, rs, namespace);\r
+               return success;\r
+       }\r
+       \r
+       \r
+       protected boolean doCreatedUpdatedNotes(IImportConfigurator bmiConfig, AnnotatableEntity annotatableEntity, ResultSet rs, String namespace)\r
+                       throws SQLException{\r
+\r
                Object createdWhen = rs.getObject("Created_When");\r
                Object createdWho = rs.getObject("Created_Who");\r
                Object updatedWhen = null;\r
@@ -54,12 +67,8 @@ public abstract class BerlinModelImportBase extends CdmIoBase<IImportConfigurato
                        //Table "Name" has no updated when/who\r
                }\r
                Object notes = rs.getObject("notes");\r
-\r
-               boolean success  = true;\r
                \r
-               //id\r
-               ImportHelper.setOriginalSource(identifiableEntity, bmiConfig.getSourceReference(), id, namespace);\r
-\r
+               boolean success  = true;\r
                \r
                //Created When, Who, Updated When Who\r
                String createdAnnotationString = "Berlin Model record was created By: " + String.valueOf(createdWho) + " (" + String.valueOf(createdWhen) + ") ";\r
@@ -68,17 +77,20 @@ public abstract class BerlinModelImportBase extends CdmIoBase<IImportConfigurato
                }\r
                Annotation annotation = Annotation.NewInstance(createdAnnotationString, Language.ENGLISH());\r
                annotation.setCommentator(bmiConfig.getCommentator());\r
-               identifiableEntity.addAnnotation(annotation);\r
+               annotation.setAnnotationType(AnnotationType.TECHNICAL());\r
+               annotatableEntity.addAnnotation(annotation);\r
                \r
                //notes\r
                if (notes != null){\r
                        String notesString = String.valueOf(notes);\r
-                       if (notesString.length() > 254 ){\r
-                               notesString = notesString.substring(0, 250) + "...";\r
+                       if (notesString.length() > 3999 ){\r
+                               notesString = notesString.substring(0, 3996) + "...";\r
+                               logger.warn("Notes string is longer than 3999 and was truncated: " + annotatableEntity);\r
                        }\r
                        Annotation notesAnnotation = Annotation.NewInstance(notesString, null);\r
+                       //notesAnnotation.setAnnotationType(AnnotationType.EDITORIAL());\r
                        //notes.setCommentator(bmiConfig.getCommentator());\r
-                       identifiableEntity.addAnnotation(notesAnnotation);\r
+                       annotatableEntity.addAnnotation(notesAnnotation);\r
                }\r
                return success;\r
        }\r
index 6ca2342ad7f2372d3b956c9f3e1115662676be04..931547418b12ac4af4eefc4331394a6b86342ee5 100644 (file)
@@ -29,6 +29,7 @@ import eu.etaxonomy.cdm.io.common.MapWrapper;
 import eu.etaxonomy.cdm.io.common.Source;\r
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;\r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.common.User;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.taxon.Synonym;\r
@@ -202,7 +203,7 @@ public class BerlinModelTaxonImport  extends BerlinModelImportBase  {
                                        taxonName  = taxonNameMap.get(nameFk);\r
                                }\r
                                                                \r
-                               ReferenceBase reference = null;\r
+                               ReferenceBase<?> reference = null;\r
                                if (referenceMap != null){\r
                                        reference = referenceMap.get(refFk);\r
                                        if (reference == null){\r
@@ -219,7 +220,7 @@ public class BerlinModelTaxonImport  extends BerlinModelImportBase  {
                                                continue; //next taxon\r
                                        }\r
                                }\r
-                               TaxonBase taxonBase;\r
+                               TaxonBase<?> taxonBase;\r
                                Synonym synonym;\r
                                Taxon taxon;\r
                                try {\r
@@ -244,10 +245,7 @@ public class BerlinModelTaxonImport  extends BerlinModelImportBase  {
                                                taxonBase.setUuid(UUID.fromString(uuid));\r
                                        }\r
                                        \r
-                                       //TODO\r
-//                                             dbAttrName = "Detail";\r
-//                                             cdmAttrName = "Micro";\r
-//                                             ImportHelper.addStringValue(rs, taxonBase, dbAttrName, cdmAttrName);\r
+\r
                                        \r
                                        if (doubtful.equals("a")){\r
                                                taxonBase.setDoubtful(false);\r
@@ -261,11 +259,17 @@ public class BerlinModelTaxonImport  extends BerlinModelImportBase  {
                                        //nameId\r
                                        ImportHelper.setOriginalSource(taxonBase, bmiConfig.getSourceReference(), taxonId, namespace);\r
 \r
-                                       \r
+                                       doIdCreatedUpdatedNotes(bmiConfig, taxonBase, rs, taxonId, namespace);\r
                                        //TODO\r
+                                       //dbAttrName = "Detail";\r
+//                                     cdmAttrName = "Micro";\r
+//                                     ImportHelper.addStringValue(rs, taxonBase, dbAttrName, cdmAttrName);\r
+                                       \r
+                                       //IdInSource\r
+                                       //NamePhrase\r
+                                       //UseNameCacheFlag\r
+                                       //PublishFlag\r
                                        //\r
-                                       //Created\r
-                                       //Note\r
                                        //ALL\r
                                        \r
                                        taxonMap.put(taxonId, taxonBase);\r
@@ -274,7 +278,7 @@ public class BerlinModelTaxonImport  extends BerlinModelImportBase  {
                                }\r
                        }\r
                        //invokeRelations(source, cdmApp, deleteAll, taxonMap, referenceMap);\r
-                       logger.info("saving taxa ...");\r
+                       logger.info("saving "+i+" taxa ...");\r
                        getTaxonService().saveTaxonAll(taxonMap.objects());\r
                        \r
                        logger.info("end makeTaxa ...");\r
index 63549d87ec45711f4ac4508483bd3c5e45dd7e6a..094ad7fe1c6189141715d4ee04206c57ad0a4fe1 100644 (file)
@@ -119,21 +119,16 @@ public class BerlinModelTaxonNameRelationImport extends BerlinModelImportBase {
                                ReferenceBase citation = referenceMap.get(relRefFk);\r
                                //TODO (preliminaryFlag = true testen\r
                                String microcitation = details;\r
-\r
+                               String rule = null;  //TODO\r
+                               \r
                                if (nameFrom != null && nameTo != null){\r
                                        if (relQualifierFk == NAME_REL_IS_BASIONYM_FOR){\r
-                                               //TODO references, mikroref, etc\r
-                                               nameTo.addBasionym(nameFrom);\r
+                                               nameTo.addBasionym(nameFrom, citation, microcitation, rule);\r
                                        }else if (relQualifierFk == NAME_REL_IS_LATER_HOMONYM_OF){\r
-                                               String rule = null;  //TODO\r
-                                               nameFrom.addRelationshipToName(nameTo, NameRelationshipType.LATER_HOMONYM(), rule) ;\r
-                                               //TODO reference\r
+                                               nameFrom.addRelationshipToName(nameTo, NameRelationshipType.LATER_HOMONYM(), citation, microcitation, rule) ;\r
                                        }else if (relQualifierFk == NAME_REL_IS_REPLACED_SYNONYM_FOR){\r
-                                               String rule = null;  //TODO\r
-                                               nameFrom.addRelationshipToName(nameTo, NameRelationshipType.REPLACED_SYNONYM(), rule) ;\r
-                                               //TODO reference\r
+                                               nameFrom.addRelationshipToName(nameTo, NameRelationshipType.REPLACED_SYNONYM(), citation, microcitation, rule) ;\r
                                        }else if (relQualifierFk == NAME_REL_HAS_SAME_TYPE_AS){\r
-                                               String rule = null;  //TODO\r
                                                nameTo.getHomotypicalGroup().merge(nameFrom.getHomotypicalGroup());//nameFrom.addRelationshipToName(nameTo, NameRelationshipType.REPLACED_SYNONYM(), rule) ;\r
                                        }else if (relQualifierFk == NAME_REL_IS_TYPE_OF || relQualifierFk == NAME_REL_IS_REJECTED_TYPE_OF ||  relQualifierFk == NAME_REL_IS_CONSERVED_TYPE_OF || relQualifierFk == NAME_REL_IS_LECTOTYPE_OF || relQualifierFk == NAME_REL_TYPE_NOT_DESIGNATED ){\r
                                                //TODO\r
@@ -147,9 +142,7 @@ public class BerlinModelTaxonNameRelationImport extends BerlinModelImportBase {
                                                nameTo.addNameTypeDesignation(nameFrom, citation, microcitation, originalNameString, isRejectedType, isConservedType, isLectoType, isNotDesignated, false);\r
                                                \r
                                        }else if (relQualifierFk == NAME_REL_IS_ORTHOGRAPHIC_VARIANT_OF){\r
-                                               String rule = null;  //TODO\r
-                                               nameFrom.addRelationshipToName(nameTo, NameRelationshipType.ORTHOGRAPHIC_VARIANT(), rule) ;\r
-                                               //TODO reference\r
+                                               nameFrom.addRelationshipToName(nameTo, NameRelationshipType.ORTHOGRAPHIC_VARIANT(), citation, microcitation, rule) ;\r
                                        }else if (relQualifierFk == NAME_REL_IS_FIRST_PARENT_OF || relQualifierFk == NAME_REL_IS_SECOND_PARENT_OF || relQualifierFk == NAME_REL_IS_FEMALE_PARENT_OF || relQualifierFk == NAME_REL_IS_MALE_PARENT_OF){\r
                                                //HybridRelationships\r
                                                if (! (nameTo instanceof BotanicalName) || ! (nameFrom instanceof BotanicalName)){\r
@@ -157,7 +150,6 @@ public class BerlinModelTaxonNameRelationImport extends BerlinModelImportBase {
                                                }\r
                                                try {\r
                                                        HybridRelationshipType hybridRelType = BerlinModelTransformer.relNameId2HybridRel(relQualifierFk);\r
-                                                       String rule = null;  //TODO\r
                                                        BotanicalName parent = (BotanicalName)nameFrom;\r
                                                        BotanicalName child = (BotanicalName)nameTo;\r
                                                        \r
index 9a3fa5a054381a0682139de3e9a3bdb4fc40b2a0..e0215ae43528badcb9cb1e088e64076917816e5a 100644 (file)
@@ -17,8 +17,6 @@ import org.springframework.transaction.TransactionStatus;
 \r
 import eu.etaxonomy.cdm.io.berlinModel.out.mapper.CreatedAndNotesMapper;\r
 import eu.etaxonomy.cdm.io.berlinModel.out.mapper.DbBooleanMapper;\r
-import eu.etaxonomy.cdm.io.berlinModel.out.mapper.DbObjectMapper;\r
-import eu.etaxonomy.cdm.io.berlinModel.out.mapper.DbSequenceMapper;\r
 import eu.etaxonomy.cdm.io.berlinModel.out.mapper.IdMapper;\r
 import eu.etaxonomy.cdm.io.berlinModel.out.mapper.MethodMapper;\r
 import eu.etaxonomy.cdm.io.common.IExportConfigurator;\r
index c9194c444c3bf036d6bd9504ad5eaf05bdbe0113..36d8b52ca6450b63531d0bf1e6121647f2094b06 100644 (file)
@@ -20,6 +20,7 @@ import eu.etaxonomy.cdm.io.berlinModel.out.DbExportState;
 import eu.etaxonomy.cdm.io.common.MultipleAttributeMapperBase;\r
 import eu.etaxonomy.cdm.model.common.AnnotatableEntity;\r
 import eu.etaxonomy.cdm.model.common.Annotation;\r
+import eu.etaxonomy.cdm.model.common.AnnotationType;\r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
 \r
 /**\r
@@ -82,7 +83,9 @@ public class CreatedAndNotesMapper extends MultipleAttributeMapperBase<DbSingleA
                String result = "";\r
                String separator = ";";\r
                for (Annotation annotation :obj.getAnnotations()){\r
-                       result = CdmUtils.concat(separator, result, annotation.getText());\r
+                       if (! AnnotationType.TECHNICAL().equals(annotation.getAnnotationType())){\r
+                               result = CdmUtils.concat(separator, result, annotation.getText());\r
+                       }\r
                }\r
                return (result.trim().equals("")? null : result);\r
        }\r
index 52f3216e0d10306c0a08c7a993ca3ded24251568..d19185d82c02a283b365b574423ea89e7b6d48c5 100644 (file)
@@ -248,6 +248,17 @@ public class ImportHelper {
        \r
        \r
        public static TimePeriod getDatePublished(String refYear){\r
+               if (true){\r
+                       TimePeriod resultNew;\r
+                       try {\r
+                               resultNew = TimePeriod.parseString(refYear);\r
+                       } catch (IllegalArgumentException e) {\r
+                               logger.warn("RefYear could not be parsed: " + refYear);\r
+                               resultNew = null;\r
+                       }\r
+                       return resultNew;\r
+               }\r
+               \r
                //FIXME until now only quick and dirty and wrong\r
                if (refYear == null){\r
                        return null;\r
index 7dbb191eccc4c5091bbd2737fa59aaeb9c6451f5..97b61491cbf98b1d1c6a028c6bc022994662e2a8 100644 (file)
@@ -20,7 +20,6 @@ import org.jdom.Element;
 import org.jdom.Namespace;\r
 import org.springframework.stereotype.Component;\r
 \r
-import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
 import eu.etaxonomy.cdm.api.service.INameService;\r
 import eu.etaxonomy.cdm.io.common.CdmIoBase;\r
 import eu.etaxonomy.cdm.io.common.ICdmIO;\r
@@ -123,7 +122,9 @@ public class TcsRdfTaxonNameRelationsImport extends CdmIoBase<IImportConfigurato
                                        }\r
                                }\r
                                String ruleConcidered = null; //TODO\r
-                               fromName.addBasionym(basionym, ruleConcidered);\r
+                               String microCitation = null; //TODO;\r
+                               ReferenceBase citation = null; //TODO;\r
+                               fromName.addBasionym(basionym, citation, microCitation, ruleConcidered);\r
                                nameStore.add(fromName);\r
 \r
                        }\r