d333bef06c807fb2184f54c89bba14fe2f6ee510
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / cdm2cdm / Cdm2CdmImportConfigurator.java
1 /**
2 * Copyright (C) 2019 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.cdm.io.cdm2cdm;
10
11 import java.util.Collection;
12 import java.util.HashSet;
13 import java.util.UUID;
14
15 import eu.etaxonomy.cdm.database.ICdmDataSource;
16 import eu.etaxonomy.cdm.database.ICdmImportSource;
17 import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
18 import eu.etaxonomy.cdm.filter.VocabularyFilter;
19 import eu.etaxonomy.cdm.io.common.ITaxonNodeOutStreamPartitioner;
20 import eu.etaxonomy.cdm.io.common.ImportConfiguratorBase;
21 import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;
22 import eu.etaxonomy.cdm.model.reference.Reference;
23
24 /**
25 * Configuration base class for Cdm2Cdm migration.
26 *
27 * @author a.mueller
28 * @since 17.08.2019
29 */
30 public class Cdm2CdmImportConfigurator
31 extends ImportConfiguratorBase<Cdm2CdmImportState, ICdmImportSource>{
32
33 private static final long serialVersionUID = 5454400624983256935L;
34
35 private static IInputTransformer myTransformer = null;
36
37 private TaxonNodeFilter taxonNodeFilter = TaxonNodeFilter.NewInstance();
38
39 private VocabularyFilter vocabularyFilter = VocabularyFilter.NewInstance();
40 private Collection<UUID> graphFilter = new HashSet<>();
41 private boolean partialVocabulariesForGraphs = true;
42
43 private ITaxonNodeOutStreamPartitioner partitioner;
44 private boolean concurrent = false; //
45
46 private boolean doTaxa = false;
47 private boolean doDescriptions = false;
48 private boolean doVocabularies = false;
49
50 private boolean addSources = true;
51 private boolean removeImportSources = false;
52
53 private UserImportMode createdByMode = UserImportMode.NONE;
54 private UserImportMode updatedByMode = UserImportMode.NONE;
55
56 //***************************** NewInstance ************************/
57
58 public static Cdm2CdmImportConfigurator NewInstace(ICdmImportSource source, ICdmDataSource destination){
59 return new Cdm2CdmImportConfigurator(source, destination);
60 }
61
62 // ***************************** CONSTRUCTOR **********************/
63
64 public Cdm2CdmImportConfigurator(ICdmImportSource source, ICdmDataSource destination) {
65 super(myTransformer);
66 this.setSource(source);
67 this.setDestination(destination);
68 }
69
70 // ****************************** METHODS *********************/
71
72 @SuppressWarnings("unchecked")
73 @Override
74 public Cdm2CdmImportState getNewState() {
75 return new Cdm2CdmImportState(this);
76 }
77
78 @SuppressWarnings("unchecked")
79 @Override
80 protected void makeIoClassList() {
81 ioClassList = new Class[]{
82 Cdm2CdmVocabularyImport.class,
83 Cdm2CdmTaxonNodeImport.class ,
84 Cdm2CdmDescriptionImport.class ,
85 };
86 }
87
88 @Override
89 @Deprecated
90 public Reference getSourceReference() {
91 return sourceReference;
92 }
93
94 // ******************* GETTER / SETTER ***************************/
95
96 public TaxonNodeFilter getTaxonNodeFilter() {
97 return taxonNodeFilter;
98 }
99 public void setTaxonNodeFilter(TaxonNodeFilter taxonNodeFilter) {
100 this.taxonNodeFilter = taxonNodeFilter;
101 }
102
103 public ITaxonNodeOutStreamPartitioner getPartitioner() {
104 return partitioner;
105 }
106 public void setPartitioner(ITaxonNodeOutStreamPartitioner partitioner) {
107 this.partitioner = partitioner;
108 }
109
110 public boolean isConcurrent() {
111 return concurrent;
112 }
113 public void setConcurrent(boolean concurrent) {
114 this.concurrent = concurrent;
115 }
116
117 public boolean isDoDescriptions() {
118 return doDescriptions;
119 }
120 public void setDoDescriptions(boolean doDescriptions) {
121 this.doDescriptions = doDescriptions;
122 }
123
124 public boolean isDoTaxa() {
125 return doTaxa;
126 }
127 public void setDoTaxa(boolean doTaxa) {
128 this.doTaxa = doTaxa;
129 }
130
131 public boolean isAddSources() {
132 return addSources;
133 }
134 public void setAddSources(boolean addSources) {
135 this.addSources = addSources;
136 }
137
138 public boolean isRemoveImportSources() {
139 return removeImportSources;
140 }
141 public void setRemoveImportSources(boolean removeImportSources) {
142 this.removeImportSources = removeImportSources;
143 }
144
145 public boolean isDoVocabularies() {
146 return doVocabularies;
147 }
148
149 public void setDoVocabularies(boolean doVocabularies) {
150 this.doVocabularies = doVocabularies;
151 }
152
153 public VocabularyFilter getVocabularyFilter() {
154 return vocabularyFilter;
155 }
156 public void setVocabularyFilter(VocabularyFilter vocabularyFilter) {
157 this.vocabularyFilter = vocabularyFilter;
158 }
159
160 public Collection<UUID> getGraphFilter() {
161 return graphFilter;
162 }
163 public void setGraphFilter(Collection<UUID> graphFilter) {
164 this.graphFilter = graphFilter;
165 }
166
167 public UserImportMode getCreatedByMode() {
168 return createdByMode;
169 }
170 public void setCreatedByMode(UserImportMode createdByMode) {
171 this.createdByMode = createdByMode;
172 }
173
174 public UserImportMode getUpdatedByMode() {
175 return updatedByMode;
176 }
177 public void setUpdatedByMode(UserImportMode updatedByMode) {
178 this.updatedByMode = updatedByMode;
179 }
180
181 public boolean isPartialVocabulariesForGraphs() {
182 return partialVocabulariesForGraphs;
183 }
184
185 public void setPartialVocabulariesForGraphs(boolean partialVocabulariesForGraphs) {
186 this.partialVocabulariesForGraphs = partialVocabulariesForGraphs;
187 }
188 }