From: Andreas Müller Date: Tue, 5 Mar 2019 10:49:45 +0000 (+0100) Subject: Merge branch 'master' into feature8162 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib-apps.git/commitdiff_plain/c715029f7e0045fd8735cebf68c778851972661d?hp=7ae0512d6a7ef2b4b652bdd7eaa8c37d66697b83 Merge branch 'master' into feature8162 Conflicts: app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCsvImportState.java --- diff --git a/app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCategoryAsPropertiesImport.java b/app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCategoryAsPropertiesImport.java new file mode 100644 index 00000000..0a118a66 --- /dev/null +++ b/app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCategoryAsPropertiesImport.java @@ -0,0 +1,71 @@ +/** +* Copyright (C) 2017 EDIT +* European Distributed Institute of Taxonomy +* http://www.e-taxonomy.eu +* +* The contents of this file are subject to the Mozilla Public License Version 1.1 +* See LICENSE.TXT at the top of this package for the full license terms. +*/ +package eu.etaxonomy.cdm.io.plantglossary; + +import java.io.File; +import java.net.URI; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.springframework.stereotype.Component; + +import eu.etaxonomy.cdm.common.CdmUtils; +import eu.etaxonomy.cdm.io.csv.in.CsvImportBase; +import eu.etaxonomy.cdm.model.common.IdentifiableSource; +import eu.etaxonomy.cdm.model.common.OriginalSourceType; +import eu.etaxonomy.cdm.model.common.TermVocabulary; +import eu.etaxonomy.cdm.model.description.Feature; + +/** + * + * @author pplitzner + * @since Dec 7, 2018 + * + */ +@Component +public class PlantGlossaryCategoryAsPropertiesImport extends CsvImportBase{ + private static final long serialVersionUID = -5600766240192189822L; + private static Logger logger = Logger.getLogger(PlantGlossaryCategoryAsPropertiesImport.class); + + @Override + protected void handleSingleLine(PlantGlossaryCsvImportState importState) { + final String HEADER_LABEL = "rdfs:label"; + final String HEADER_DESCRIPTION = "skos:definition"; + final String HEADER_URI = "category_URI"; + final String HEADER_NOTES = "skos:notes"; + + Map currentRecord = importState.getCurrentRecord(); + + String label = currentRecord.get(HEADER_LABEL); + if(CdmUtils.isBlank(label)){ + // this line does not contain any vocabulary information + return; + } + if(importState.isTermPresent(label, getTermService())) { + return; + } + + String description = currentRecord.get(HEADER_DESCRIPTION); + String uri = currentRecord.get(HEADER_URI); + Feature property = Feature.NewInstance(description, label, null); + property.setUri(URI.create(uri)); + property.setIdInVocabulary(label); + + TermVocabulary vocabulary = importState.getPropertyVoc(); + vocabulary.addTerm(property); + + IdentifiableSource source = IdentifiableSource.NewInstance(OriginalSourceType.Import, importState.getCitation().getTitle(), null, importState.getCitation(), null); + source.setIdInSource(label); + property.addSource(source); + + getVocabularyService().saveOrUpdate(vocabulary); + getTermService().saveOrUpdate(property); + } + +} \ No newline at end of file diff --git a/app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCsvImportConfigurator.java b/app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCsvImportConfigurator.java index 1c6dd30c..7704bf99 100644 --- a/app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCsvImportConfigurator.java +++ b/app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCsvImportConfigurator.java @@ -45,6 +45,7 @@ public class PlantGlossaryCsvImportConfigurator protected void makeIoClassList() { ioClassList = new Class[] { PlantGlossaryCategoryImport.class, + PlantGlossaryCategoryAsPropertiesImport.class, PlantGlossaryStateImport.class }; } diff --git a/app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCsvImportState.java b/app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCsvImportState.java index 682350b9..6adb144a 100644 --- a/app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCsvImportState.java +++ b/app-import/src/main/java/eu/etaxonomy/cdm/io/plantglossary/PlantGlossaryCsvImportState.java @@ -21,7 +21,15 @@ import eu.etaxonomy.cdm.io.csv.in.CsvImportState; import eu.etaxonomy.cdm.model.agent.Institution; import eu.etaxonomy.cdm.model.agent.Person; import eu.etaxonomy.cdm.model.agent.Team; +<<<<<<< HEAD +======= +import eu.etaxonomy.cdm.model.common.IdentifiableSource; +import eu.etaxonomy.cdm.model.common.OriginalSourceType; +import eu.etaxonomy.cdm.model.common.TermType; +import eu.etaxonomy.cdm.model.common.TermVocabulary; +>>>>>>> master import eu.etaxonomy.cdm.model.common.VerbatimTimePeriod; +import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.description.State; import eu.etaxonomy.cdm.model.reference.Reference; import eu.etaxonomy.cdm.model.reference.ReferenceFactory; @@ -35,6 +43,7 @@ import eu.etaxonomy.cdm.model.term.TermVocabulary; */ public class PlantGlossaryCsvImportState extends CsvImportState { + private TermVocabulary propertyVoc; private List existingVocabularies = new ArrayList<>(); private List existingTerms = new ArrayList<>(); private Set vocabularies = new HashSet<>(); @@ -66,6 +75,10 @@ public class PlantGlossaryCsvImportState extends CsvImportState getPropertyVoc() { + return propertyVoc; + } + void addVocabulary(TermVocabulary vocabulary) { vocabularies.add(vocabulary); }