From f81bec155838a2dbe68b2a59da109c733d206c58 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andreas=20M=C3=BCller?= Date: Fri, 12 Jan 2024 17:10:17 +0100 Subject: [PATCH] ref #10449 allow filtering out synonyms in list imports --- .../CdmLightClassificationExport.java | 55 ++++++++++--------- .../io/coldp/ColDpClassificationExport.java | 28 +++++----- .../out/TaxonTreeExportConfiguratorBase.java | 10 ++++ .../io/wfo/out/WfoClassificationExport.java | 5 ++ 4 files changed, 59 insertions(+), 39 deletions(-) diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/cdmLight/CdmLightClassificationExport.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/cdmLight/CdmLightClassificationExport.java index c5fa4fc09e..84e9ff74ea 100755 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/cdmLight/CdmLightClassificationExport.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/cdmLight/CdmLightClassificationExport.java @@ -306,37 +306,40 @@ public class CdmLightClassificationExport TaxonName name = taxon.getName(); handleName(state, name, taxon, true); - //homotypic group / synonyms - HomotypicalGroup homotypicGroup = taxon.getHomotypicGroup(); - int index = 0; - int homotypicGroupIndex = 0; - handleHomotypicalGroup(state, homotypicGroup, taxon, homotypicGroupIndex); - homotypicGroupIndex++; - for (Synonym syn : taxon.getSynonymsInGroup(homotypicGroup)) { - handleSynonym(state, syn, index); - index++; - } - List heterotypicHomotypicGroups = taxon.getHeterotypicSynonymyGroups(); - for (HomotypicalGroup group: heterotypicHomotypicGroups){ - handleHomotypicalGroup(state, group, taxon, homotypicGroupIndex); - for (Synonym syn : taxon.getSynonymsInGroup(group)) { + if (state.getConfig().isDoSynonyms()) { + + //homotypic group / synonyms + HomotypicalGroup homotypicGroup = taxon.getHomotypicGroup(); + int index = 0; + int homotypicGroupIndex = 0; + handleHomotypicalGroup(state, homotypicGroup, taxon, homotypicGroupIndex); + homotypicGroupIndex++; + for (Synonym syn : taxon.getSynonymsInGroup(homotypicGroup)) { handleSynonym(state, syn, index); index++; } - homotypicGroupIndex++; - } + List heterotypicHomotypicGroups = taxon.getHeterotypicSynonymyGroups(); + for (HomotypicalGroup group: heterotypicHomotypicGroups){ + handleHomotypicalGroup(state, group, taxon, homotypicGroupIndex); + for (Synonym syn : taxon.getSynonymsInGroup(group)) { + handleSynonym(state, syn, index); + index++; + } + homotypicGroupIndex++; + } - //pro parte synonyms - index = 0; - for (Taxon tax : taxon.getAllProParteSynonyms()) { - handleProPartePartialMisapplied(state, tax, taxon, true, false, index); - index++; - } + //pro parte synonyms + index = 0; + for (Taxon tax : taxon.getAllProParteSynonyms()) { + handleProPartePartialMisapplied(state, tax, taxon, true, false, index); + index++; + } - //misapplications - for (Taxon tax : taxon.getAllMisappliedNames()) { - handleProPartePartialMisapplied(state, tax, taxon, false, true, index); - index++; + //misapplications + for (Taxon tax : taxon.getAllMisappliedNames()) { + handleProPartePartialMisapplied(state, tax, taxon, false, true, index); + index++; + } } //taxon table diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/coldp/ColDpClassificationExport.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/coldp/ColDpClassificationExport.java index 2a97b249f9..133d2a9984 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/coldp/ColDpClassificationExport.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/coldp/ColDpClassificationExport.java @@ -301,22 +301,24 @@ public class ColDpClassificationExport TaxonName name = taxon.getName(); handleName(state, name, taxon, true); - //homotypic group / synonyms - HomotypicalGroup homotypicGroup = taxon.getHomotypicGroup(); - int index = 0; - handleHomotypicalGroup(state, homotypicGroup, taxon); - for (Synonym syn : taxon.getSynonymsInGroup(homotypicGroup)) { - handleSynonym(state, syn, index); - index++; - } - - List heterotypicHomotypicGroups = taxon.getHeterotypicSynonymyGroups(); - for (HomotypicalGroup group: heterotypicHomotypicGroups){ - handleHomotypicalGroup(state, group, taxon); - for (Synonym syn : taxon.getSynonymsInGroup(group)) { + if (state.getConfig().isDoSynonyms()) { + //homotypic group / synonyms + HomotypicalGroup homotypicGroup = taxon.getHomotypicGroup(); + int index = 0; + handleHomotypicalGroup(state, homotypicGroup, taxon); + for (Synonym syn : taxon.getSynonymsInGroup(homotypicGroup)) { handleSynonym(state, syn, index); index++; } + + List heterotypicHomotypicGroups = taxon.getHeterotypicSynonymyGroups(); + for (HomotypicalGroup group: heterotypicHomotypicGroups){ + handleHomotypicalGroup(state, group, taxon); + for (Synonym syn : taxon.getSynonymsInGroup(group)) { + handleSynonym(state, syn, index); + index++; + } + } } //TODO 2 pro parte synonyms and misapplications diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/out/TaxonTreeExportConfiguratorBase.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/out/TaxonTreeExportConfiguratorBase.java index ffdf042fd2..b7a645c671 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/out/TaxonTreeExportConfiguratorBase.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/out/TaxonTreeExportConfiguratorBase.java @@ -23,7 +23,17 @@ public abstract class TaxonTreeExportConfiguratorBase private static final long serialVersionUID = 1663876643435871032L; + + private boolean doSynonyms = true; + protected TaxonTreeExportConfiguratorBase(IExportTransformer transformer) { super(transformer); } + + public boolean isDoSynonyms() { + return doSynonyms; + } + public void setDoSynonyms(boolean doSynonyms) { + this.doSynonyms = doSynonyms; + } } \ No newline at end of file diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/wfo/out/WfoClassificationExport.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/wfo/out/WfoClassificationExport.java index cfc0a33548..1ceb9f147c 100644 --- a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/wfo/out/WfoClassificationExport.java +++ b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/wfo/out/WfoClassificationExport.java @@ -287,6 +287,11 @@ public class WfoClassificationExport } private void handleSynonyms(WfoExportState state, Taxon taxon) { + + if (!state.getConfig().isDoSynonyms()) { + return; + } + //homotypic group / synonyms HomotypicalGroup homotypicGroup = taxon.getHomotypicGroup(); handleHomotypicalGroup(state, homotypicGroup, taxon); -- 2.34.1