ref #6794 TermTreeNode-> TermNode in cdmlib-apps
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / app / edaphobase / EdaphobaseActivator.java
1 /**
2 * Copyright (C) 2015 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.app.edaphobase;
10
11 import java.util.UUID;
12
13 import org.apache.log4j.Logger;
14
15 import eu.etaxonomy.cdm.api.service.ITermService;
16 import eu.etaxonomy.cdm.app.common.CdmDestinations;
17 import eu.etaxonomy.cdm.app.common.CdmImportSources;
18 import eu.etaxonomy.cdm.database.DbSchemaValidation;
19 import eu.etaxonomy.cdm.database.ICdmDataSource;
20 import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
21 import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;
22 import eu.etaxonomy.cdm.io.common.Source;
23 import eu.etaxonomy.cdm.io.edaphobase.EdaphobaseImportConfigurator;
24 import eu.etaxonomy.cdm.model.description.Feature;
25 import eu.etaxonomy.cdm.model.term.TermNode;
26 import eu.etaxonomy.cdm.model.term.TermTree;
27
28 /**
29 * @author a.mueller
30 * @since 04.12.2015
31 *
32 */
33 public class EdaphobaseActivator {
34 @SuppressWarnings("unused")
35 private static final Logger logger = Logger.getLogger(EdaphobaseActivator.class);
36
37 //database validation status (create, update, validate ...)
38 static DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
39
40 // static final Source edaphoSource = CdmImportSources.EDAPHOBASE();
41 static final Source edaphoSource = CdmImportSources.EDAPHOBASE8();
42
43 // static final ICdmDataSource cdmDestination = CdmDestinations.localH2();
44 // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_local_edaphobase();
45 // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_production_edaphobase();
46 // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_postgres_edaphobase();
47 // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_postgres_edaphobase();
48 static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_postgres_edaphobase();
49
50
51
52 //feature tree uuid
53 private static final UUID featureTreeUuid = UUID.fromString("a543d66a-e310-4b3e-a9fa-b729afefad16");
54 private static final String featureTreeTitle = "Edaphobase Presentation Feature Tree";
55
56 //classification
57 static final UUID classificationUuid = UUID.fromString("91231ebf-1c7a-47b9-a56c-b45b33137244");
58 static final String classificationTitle = "Edaphobase";
59 static final UUID secUuid = UUID.fromString("95dcb1b6-5197-4ce6-b2fa-c6482119d2ea");
60 static final String secundumTitle = "Edaphobase";
61
62 private static final boolean doTaxa = true;
63 private static final boolean doSynonyms = true;
64 private static final boolean doReferences = true;
65 private static final boolean doDescriptions = false;
66
67 //logging
68 private static final boolean ignoreSubgenus = true;
69 private static final boolean ignore4nomial = true;
70
71
72 //check - import
73 static CHECK check = CHECK.IMPORT_WITHOUT_CHECK;
74
75 private void doImport(Source source, ICdmDataSource cdmDestination){
76
77 EdaphobaseImportConfigurator config= EdaphobaseImportConfigurator.NewInstance(source, cdmDestination);
78 config.setDbSchemaValidation(dbSchemaValidation);
79 config.setClassificationUuid(classificationUuid);
80 config.setClassificationName(classificationTitle);
81 config.setEdaphobaseSecundumTitle(secundumTitle);
82 config.setSecUuid(secUuid);
83 config.setDoTaxa(doTaxa);
84 config.setDoReferences(doReferences);
85 config.setDoSynonyms(doSynonyms);
86 config.setDoDescriptions(doDescriptions);
87 config.setCheck(check);
88
89 config.setIgnoreSubgenus(ignoreSubgenus);
90 config.setIgnore4nomial(ignore4nomial);
91
92 CdmDefaultImport<EdaphobaseImportConfigurator> myImport = new CdmDefaultImport<>();
93 myImport.invoke(config);
94
95 TermTree<Feature> tree = makeFeatureNodes(myImport.getCdmAppController().getTermService());
96 myImport.getCdmAppController().getFeatureTreeService().saveOrUpdate(tree);
97 }
98
99 private TermTree<Feature> makeFeatureNodes(ITermService service){
100
101 TermTree<Feature> result = TermTree.NewFeatureInstance(featureTreeUuid);
102 result.setTitleCache(featureTreeTitle, true);
103 TermNode<Feature> root = result.getRoot();
104
105 Feature distributionFeature = (Feature)service.find(Feature.DISTRIBUTION().getUuid());
106 root.addChild(distributionFeature);
107
108 return result;
109 }
110
111 /**
112 * @param args
113 */
114 public static void main(String[] args) {
115 EdaphobaseActivator me = new EdaphobaseActivator();
116 me.doImport(edaphoSource, cdmDestination);
117 System.exit(0);
118 }
119 }