From 8a8e646f40cb6b836983400982d322103c0be004 Mon Sep 17 00:00:00 2001 From: "a.babadshanjan" Date: Wed, 17 Jun 2009 12:24:42 +0000 Subject: [PATCH] Map Systematics facts from Berlin Model to one single text data object in CDM (merge from 2.0) --- .../in/BerlinModelFactsImport.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelFactsImport.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelFactsImport.java index 97b1f33b41..2a4eb89000 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelFactsImport.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelFactsImport.java @@ -29,6 +29,7 @@ import eu.etaxonomy.cdm.model.common.Language; import eu.etaxonomy.cdm.model.common.Marker; import eu.etaxonomy.cdm.model.common.MarkerType; import eu.etaxonomy.cdm.model.common.TermVocabulary; +import eu.etaxonomy.cdm.model.description.DescriptionElementBase; import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.description.TaxonDescription; import eu.etaxonomy.cdm.model.description.TextData; @@ -209,9 +210,36 @@ public class BerlinModelFactsImport extends BerlinModelImportBase { taxon.addDescription(taxonDescription); } + //textData - TextData textData = TextData.NewInstance(); + TextData textData = null; + boolean newTextData = true; + + // For Cichorieae DB: If fact category is 31 (Systematics) and there is already a Systematics TextData + // description element append the fact text to the existing TextData + if(categoryFk == 31) { + Set descriptionElements = taxonDescription.getElements(); + for (DescriptionElementBase descriptionElement : descriptionElements) { + String featureString = descriptionElement.getFeature().getRepresentation(Language.DEFAULT()).getLabel(); + if (descriptionElement instanceof TextData && featureString.equals("Systematics")) { // TODO: test + textData = (TextData)descriptionElement; + String factTextStr = textData.getText(Language.DEFAULT()); + // FIXME: Removing newlines doesn't work + if (factTextStr.contains("\\r\\n")) { + factTextStr = factTextStr.replaceAll("\\r\\n",""); + } + StringBuilder factText = new StringBuilder(factTextStr); + factText.append(fact); + fact = factText.toString(); + newTextData = false; + break; + } + } + } + if(newTextData == true) { textData = TextData.NewInstance(); } + + //for diptera database if (categoryFk == 99 && notes.contains("")){ notes = notes.replaceAll("", ""); -- 2.34.1