\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
\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
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
\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
//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
}\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
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
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
continue; //next taxon\r
}\r
}\r
- TaxonBase taxonBase;\r
+ TaxonBase<?> taxonBase;\r
Synonym synonym;\r
Taxon taxon;\r
try {\r
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
//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
}\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
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
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
}\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
\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
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
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
\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
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
}\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