ref #10206 add publish flag to CdmLight and ColDP export in cdmlib
authorAndreas Müller <a.mueller@bgbm.org>
Fri, 19 Jan 2024 13:53:31 +0000 (14:53 +0100)
committerAndreas Müller <a.mueller@bgbm.org>
Fri, 19 Jan 2024 14:00:02 +0000 (15:00 +0100)
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/cdmLight/CdmLightClassificationExport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/cdmLight/CdmLightExportConfigurator.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/coldp/ColDpClassificationExport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/coldp/ColDpExportConfigurator.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/out/IFactExportConfigurator.java [new file with mode: 0644]

index ad8e7ba44a9412a7e66bc9e0642448b5653ad0c3..551b1410ce11dba609ea41484bc1a8877ff729c2 100755 (executable)
@@ -458,20 +458,22 @@ public class CdmLightClassificationExport
                 List<DescriptionElementBase> usageFacts = new ArrayList<>();
                 for (TaxonDescription description : descriptions) {
                     if (description.getElements() != null) {
-                        for (DescriptionElementBase element : description.getElements()) {
-                            element = CdmBase.deproxy(element);
-                            handleAnnotations(element);
-                            if (element.getFeature().equals(Feature.COMMON_NAME())) {
-                                commonNameFacts.add(element);
-                            } else if (element.getFeature().equals(Feature.DISTRIBUTION())) {
-                                distributionFacts.add(element);
-                            } else if (element instanceof IndividualsAssociation
-                                    || isSpecimenFeature(element.getFeature())) {
-                                specimenFacts.add(element);
-                            } else if (element.getFeature().isSupportsTaxonInteraction()) {
-                                taxonInteractionsFacts.add(element);
-                            } else {
-                                simpleFacts.add(element);
+                        if (description.isPublish() || state.getConfig().isIncludeUnpublishedFacts()){
+                            for (DescriptionElementBase element : description.getElements()) {
+                                element = CdmBase.deproxy(element);
+                                handleAnnotations(element);
+                                if (element.getFeature().equals(Feature.COMMON_NAME())) {
+                                    commonNameFacts.add(element);
+                                } else if (element.getFeature().equals(Feature.DISTRIBUTION())) {
+                                    distributionFacts.add(element);
+                                } else if (element instanceof IndividualsAssociation
+                                        || isSpecimenFeature(element.getFeature())) {
+                                    specimenFacts.add(element);
+                                } else if (element.getFeature().isSupportsTaxonInteraction()) {
+                                    taxonInteractionsFacts.add(element);
+                                } else {
+                                    simpleFacts.add(element);
+                                }
                             }
                         }
                     }
index 47a7e71f305d57056ad14590a40cb79fbf8601e4..ff1bed4885dc99f752f36559d1d032587da10d61 100755 (executable)
@@ -17,6 +17,7 @@ import eu.etaxonomy.cdm.format.description.distribution.CondensedDistributionCon
 import eu.etaxonomy.cdm.io.common.CsvIOConfigurator;
 import eu.etaxonomy.cdm.io.common.ExportResultType;
 import eu.etaxonomy.cdm.io.common.mapping.out.IExportTransformer;
+import eu.etaxonomy.cdm.io.out.IFactExportConfigurator;
 import eu.etaxonomy.cdm.io.out.TaxonTreeExportConfiguratorBase;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
@@ -28,7 +29,8 @@ import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
  * @since 15.03.2017
  */
 public class CdmLightExportConfigurator
-        extends TaxonTreeExportConfiguratorBase<CdmLightExportState,CdmLightExportConfigurator>{
+        extends TaxonTreeExportConfiguratorBase<CdmLightExportState,CdmLightExportConfigurator>
+        implements IFactExportConfigurator {
 
     private static final long serialVersionUID = -1562074221435082060L;
 
@@ -57,6 +59,7 @@ public class CdmLightExportConfigurator
     //filter
     private boolean isExcludeImportSources = true;
     private boolean doFactualData = true;
+    private boolean includeUnpublishedFacts = false;
 
     //metadata /gfbio
     private String description;
@@ -304,17 +307,29 @@ public class CdmLightExportConfigurator
         this.condensedDistributionConfiguration = condensedDistributionConfiguration;
     }
 
+    @Override
     public boolean isDoFactualData() {
         return doFactualData;
     }
+    @Override
     public void setDoFactualData(boolean doFactualData) {
         this.doFactualData = doFactualData;
     }
 
+    @Override
+    public boolean isIncludeUnpublishedFacts() {
+        return includeUnpublishedFacts;
+    }
+    @Override
+    public void setIncludeUnpublishedFacts(boolean includeUnpublishedFacts) {
+        this.includeUnpublishedFacts = includeUnpublishedFacts;
+    }
+
     public UUID getStatusTree() {
         return statusTree;
     }
     public void setStatusTree(UUID statusTree) {
         this.statusTree = statusTree;
     }
+
 }
index 133d2a99849329d1955a309ce17963fb4c03edee..82d1e0188beafbc6edb12052b72f02d089568fdd 100644 (file)
@@ -576,7 +576,8 @@ public class ColDpClassificationExport
             List<DescriptionElementBase> taxonInteractionsFacts = new ArrayList<>();
             List<DescriptionElementBase> commonNameFacts = new ArrayList<>();
             for (TaxonDescription description : descriptions) {
-                if (description.getElements() != null) {
+                if (description.getElements() != null &&
+                        description.isPublish() || state.getConfig().isIncludeUnpublishedFacts()){
                     for (DescriptionElementBase element : description.getElements()) {
                         element = CdmBase.deproxy(element);
                         if (element.getFeature().equals(Feature.COMMON_NAME())) {
index c08a3fde5b8354c7f86c16ea79d31d4380a6a382..bb3d3b9f790676447f33d416666779cb52e2d006 100644 (file)
@@ -15,6 +15,7 @@ import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.cdm.io.common.CsvIOConfigurator;
 import eu.etaxonomy.cdm.io.common.ExportResultType;
 import eu.etaxonomy.cdm.io.common.mapping.out.IExportTransformer;
+import eu.etaxonomy.cdm.io.out.IFactExportConfigurator;
 import eu.etaxonomy.cdm.io.out.TaxonTreeExportConfiguratorBase;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 
@@ -23,7 +24,8 @@ import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
  * @since 2023-07-17
  */
 public class ColDpExportConfigurator
-        extends TaxonTreeExportConfiguratorBase<ColDpExportState,ColDpExportConfigurator> {
+        extends TaxonTreeExportConfiguratorBase<ColDpExportState,ColDpExportConfigurator>
+        implements IFactExportConfigurator {
 
     private static final long serialVersionUID = -1562074221435082060L;
 
@@ -38,8 +40,11 @@ public class ColDpExportConfigurator
 
     private Comparator<TaxonNodeDto> taxonNodeComparator;
 
+    private boolean includeFullName = false;
+
     //filter
     private boolean doFactualData = true;
+    private boolean includeUnpublishedFacts = false;
 
     private static final ColDpExportTransformer transformer = new ColDpExportTransformer();
 
@@ -141,10 +146,28 @@ public class ColDpExportConfigurator
         this.taxonNodeComparator = taxonNodeComparator;
     }
 
+    @Override
     public boolean isDoFactualData() {
         return doFactualData;
     }
+    @Override
     public void setDoFactualData(boolean doFactualData) {
         this.doFactualData = doFactualData;
     }
+
+    @Override
+    public boolean isIncludeUnpublishedFacts() {
+        return includeUnpublishedFacts;
+    }
+    @Override
+    public void setIncludeUnpublishedFacts(boolean includeUnpublishedFacts) {
+        this.includeUnpublishedFacts = includeUnpublishedFacts;
+    }
+
+    public boolean isIncludeFullName() {
+        return includeFullName;
+    }
+    public void setIncludeFullName(boolean includeFullName) {
+        this.includeFullName = includeFullName;
+    }
 }
\ No newline at end of file
diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/out/IFactExportConfigurator.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/out/IFactExportConfigurator.java
new file mode 100644 (file)
index 0000000..69f7afc
--- /dev/null
@@ -0,0 +1,24 @@
+/**
+* Copyright (C) 2024 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.out;
+
+/**
+ * Interface for export configurators exporting (beside others).
+ *
+ * @author muellera
+ * @since 19.01.2024
+ */
+public interface IFactExportConfigurator {
+
+    public boolean isDoFactualData();
+    public void setDoFactualData(boolean doFactualData);
+
+    public boolean isIncludeUnpublishedFacts();
+    public void setIncludeUnpublishedFacts(boolean includeUnpublishedFacts);
+}