Project

General

Profile

« Previous | Next » 

Revision 81bba387

Added by Andreas Müller over 12 years ago

remove pesi activators from app-import

View differences:

.gitattributes
46 46
app-import/src/main/java/eu/etaxonomy/cdm/app/jaxb/CdmDiffActivator.java -text
47 47
app-import/src/main/java/eu/etaxonomy/cdm/app/jaxb/JaxbExportActivator.java -text
48 48
app-import/src/main/java/eu/etaxonomy/cdm/app/jaxb/JaxbImportActivator.java -text
49
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/ErmsActivator.java -text
50
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/EuroMedActivator.java -text
51
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/FaunaEuropaeaActivator.java -text
52
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/FaunaEuropaeaSources.java -text
53
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/PesiDestinations.java -text
54
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/PesiExportActivator.java -text
55
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/erms/ErmsActivator.java -text
56
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/merging/FaunaEuErmsFindIdenticalNamesActivator.java -text
57
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/merging/FaunaEuErmsMergeActivator.java -text
58 49
app-import/src/main/java/eu/etaxonomy/cdm/app/pilotOutputHtml/SimpleDescriptionOutput.java -text
59 50
app-import/src/main/java/eu/etaxonomy/cdm/app/references/EndNoteImportActivator.java -text
60 51
app-import/src/main/java/eu/etaxonomy/cdm/app/sdd/AnthuriumActivator.java -text
app-import/src/main/java/eu/etaxonomy/cdm/app/berlinModelImport/AlgaTerraActivator.java
19 19
import eu.etaxonomy.cdm.database.ICdmDataSource;
20 20
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;
21 21
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
22
import eu.etaxonomy.cdm.io.common.Source;
23 22
import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;
24 23
import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES;
25
import eu.etaxonomy.cdm.model.common.ISourceable;
24
import eu.etaxonomy.cdm.io.common.Source;
26 25
import eu.etaxonomy.cdm.model.description.Feature;
27 26
import eu.etaxonomy.cdm.model.description.FeatureNode;
28 27
import eu.etaxonomy.cdm.model.description.FeatureTree;
29 28
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
30
import eu.etaxonomy.cdm.model.name.ZoologicalName;
31 29

  
32 30

  
33 31
/**
app-import/src/main/java/eu/etaxonomy/cdm/app/berlinModelImport/CampanulaceaeActivator.java
13 13

  
14 14
import org.apache.log4j.Logger;
15 15

  
16
import eu.etaxonomy.cdm.api.application.CdmApplicationController;
17 16
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
18 17
import eu.etaxonomy.cdm.app.common.CdmDestinations;
18
import eu.etaxonomy.cdm.app.berlinModelImport.TreeCreator;
19 19
import eu.etaxonomy.cdm.database.DbSchemaValidation;
20 20
import eu.etaxonomy.cdm.database.ICdmDataSource;
21 21
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;
app-import/src/main/java/eu/etaxonomy/cdm/app/berlinModelImport/IldisActivator.java
15 15

  
16 16
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
17 17
import eu.etaxonomy.cdm.app.common.CdmDestinations;
18
import eu.etaxonomy.cdm.app.pesi.FaunaEuropaeaActivator;
19 18
import eu.etaxonomy.cdm.database.DbSchemaValidation;
20 19
import eu.etaxonomy.cdm.database.ICdmDataSource;
21 20
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;
......
36 35
 */
37 36
public class IldisActivator {
38 37
	@SuppressWarnings("unused")
39
	private static final Logger logger = Logger.getLogger(FaunaEuropaeaActivator.class);
38
	private static final Logger logger = Logger.getLogger(IldisActivator.class);
40 39
	//database validation status (create, update, validate ...)
41 40
	static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;
42 41
	static final Source berlinModelSource = BerlinModelSources.ILDIS();
app-import/src/main/java/eu/etaxonomy/cdm/app/berlinModelImport/SalvadorActivator.java
14 14

  
15 15
import org.apache.log4j.Logger;
16 16

  
17
import eu.etaxonomy.cdm.app.berlinModelImport.BerlinModelSources;
17 18
import eu.etaxonomy.cdm.app.common.CdmDestinations;
18 19
import eu.etaxonomy.cdm.database.DbSchemaValidation;
19 20
import eu.etaxonomy.cdm.database.ICdmDataSource;
app-import/src/main/java/eu/etaxonomy/cdm/app/berlinModelImport/TreeCreator.java
15 15

  
16 16
import org.apache.log4j.Logger;
17 17

  
18
import eu.etaxonomy.cdm.app.berlinModelImport.TreeCreator;
18 19
import eu.etaxonomy.cdm.model.description.Feature;
19 20
import eu.etaxonomy.cdm.model.description.FeatureNode;
20 21
import eu.etaxonomy.cdm.model.description.FeatureTree;
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/ErmsActivator.java
1
/**
2
* Copyright (C) 2007 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

  
10
package eu.etaxonomy.cdm.app.pesi;
11

  
12
import java.util.UUID;
13

  
14
import org.apache.log4j.Logger;
15

  
16
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
17
import eu.etaxonomy.cdm.app.common.CdmDestinations;
18
import eu.etaxonomy.cdm.database.DbSchemaValidation;
19
import eu.etaxonomy.cdm.database.ICdmDataSource;
20
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;
21
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
22
import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;
23
import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES;
24
import eu.etaxonomy.cdm.io.common.Source;
25
import eu.etaxonomy.cdm.model.common.ISourceable;
26
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
27
import eu.etaxonomy.cdm.model.name.ZoologicalName;
28

  
29

  
30
/**
31
 * TODO add the following to a wiki page:
32
 * HINT: If you are about to import into a mysql data base running under windows and if you wish to dump and restore the resulting data base under another operation systen 
33
 * you must set the mysql system variable lower_case_table_names = 0 in order to create data base with table compatible names.
34
 * 
35
 * 
36
 * @author a.mueller
37
 *
38
 */
39
public class ErmsActivator {
40
	private static final Logger logger = Logger.getLogger(ErmsActivator.class);
41

  
42
	//database validation status (create, update, validate ...)
43
	static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;
44
	static final Source berlinModelSource = FaunaEuropaeaSources.PESI_ERMS();
45
	static final ICdmDataSource cdmDestination = CdmDestinations.cdm_pesi_erms();
46
	static final UUID treeUuid = UUID.fromString("8bd27d84-fd4f-4bfa-bde0-3e6b7311b334");
47
	static final int sourceSecId = 500000;
48
	static final UUID featureTreeUuid = UUID.fromString("33cbf7a8-0c47-4d47-bd11-b7d77a38d0f6");
49
	static final Object[] featureKeyList = new Integer[]{1,4,5,10,11,12,13,14, 249, 250, 251, 252, 253}; 
50
	
51
	//check - import
52
	static final CHECK check = CHECK.CHECK_AND_IMPORT;
53

  
54

  
55
	//NomeclaturalCode
56
	static final NomenclaturalCode nomenclaturalCode = NomenclaturalCode.ICZN;
57

  
58
	//ignore null
59
	static final boolean ignoreNull = true;
60
	
61
// ***************** ALL ************************************************//
62
	
63
	//authors
64
	static final boolean doAuthors = true;
65
	//references
66
	static final DO_REFERENCES doReferences =  DO_REFERENCES.CONCEPT_REFERENCES;
67
	//names
68
	static final boolean doTaxonNames = false;
69
	static final boolean doRelNames = true;
70
	static final boolean doNameStatus = true;
71
	static final boolean doTypes = true;
72
	static final boolean doNameFacts = true;
73
	
74
	//taxa
75
	static final boolean doTaxa = true;
76
	static final boolean doRelTaxa = true;
77
	static final boolean doFacts = true;
78
	static final boolean doOccurences = false;
79
	
80
	
81
//******************** NONE ***************************************//
82
	
83
//	//authors
84
//	static final boolean doAuthors = true;
85
//	//references
86
//	static final DO_REFERENCES doReferences =  DO_REFERENCES.NONE;
87
//	//names
88
//	static final boolean doTaxonNames = false;
89
//	static final boolean doRelNames = false;
90
//	static final boolean doNameStatus = false;
91
//	static final boolean doTypes = false;
92
//	static final boolean doNameFacts = false;
93
//	
94
//	//taxa
95
//	static final boolean doTaxa = true;
96
//	static final boolean doRelTaxa = false;
97
//	static final boolean doFacts = false;
98
//	static final boolean doOccurences = false;
99
//	
100
	
101
	
102
	/**
103
	 * @param args
104
	 */
105
	public static void main(String[] args) {
106
		System.out.println("Start import from BerlinModel("+ berlinModelSource.getDatabase() + ") ...");
107
		
108
		//make BerlinModel Source
109
		Source source = berlinModelSource;
110
		ICdmDataSource destination = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;
111
		
112
		BerlinModelImportConfigurator bmImportConfigurator = BerlinModelImportConfigurator.NewInstance(source,  destination);
113
		
114
		bmImportConfigurator.setClassificationUuid(treeUuid);
115
		bmImportConfigurator.setSourceSecId(sourceSecId);
116
		bmImportConfigurator.setNomenclaturalCode(nomenclaturalCode);
117

  
118
		bmImportConfigurator.setIgnoreNull(ignoreNull);
119
		bmImportConfigurator.setDoAuthors(doAuthors);
120
		bmImportConfigurator.setDoReferences(doReferences);
121
		bmImportConfigurator.setDoTaxonNames(doTaxonNames);
122
		bmImportConfigurator.setDoRelNames(doRelNames);
123
		bmImportConfigurator.setDoNameStatus(doNameStatus);
124
		bmImportConfigurator.setDoTypes(doTypes);
125
		bmImportConfigurator.setDoNameFacts(doNameFacts);
126
		
127
		bmImportConfigurator.setDoTaxa(doTaxa);
128
		bmImportConfigurator.setDoRelTaxa(doRelTaxa);
129
		bmImportConfigurator.setDoFacts(doFacts);
130
		bmImportConfigurator.setDoOccurrence(doOccurences);
131
		bmImportConfigurator.setDbSchemaValidation(hbm2dll);
132

  
133
		bmImportConfigurator.setCheck(check);
134
		
135
		// invoke import
136
		CdmDefaultImport<BerlinModelImportConfigurator> bmImport = new CdmDefaultImport<BerlinModelImportConfigurator>();
137
		bmImport.invoke(bmImportConfigurator);
138
		
139
		if (bmImportConfigurator.getCheck().equals(CHECK.CHECK_AND_IMPORT)  || bmImportConfigurator.getCheck().equals(CHECK.IMPORT_WITHOUT_CHECK)    ){
140
			ICdmApplicationConfiguration app = bmImport.getCdmAppController();
141
			ISourceable obj = app.getCommonService().getSourcedObjectByIdInSource(ZoologicalName.class, "1000027", null);
142
			logger.info(obj);
143
			
144
//			//make feature tree
145
//			FeatureTree tree = TreeCreator.flatTree(featureTreeUuid, bmImportConfigurator.getFeatureMap(), featureKeyList);
146
//			app = bmImport.getCdmAppController();
147
//			app.getFeatureTreeService().saveOrUpdate(tree);
148
		}
149
		System.out.println("End import from BerlinModel ("+ source.getDatabase() + ")...");
150
	}
151

  
152
}
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/EuroMedActivator.java
1
/**
2
* Copyright (C) 2007 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

  
10
package eu.etaxonomy.cdm.app.pesi;
11

  
12
import java.util.UUID;
13

  
14
import org.apache.log4j.Logger;
15

  
16
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
17
import eu.etaxonomy.cdm.app.berlinModelImport.BerlinModelSources;
18
import eu.etaxonomy.cdm.app.berlinModelImport.TreeCreator;
19
import eu.etaxonomy.cdm.app.common.CdmDestinations;
20
import eu.etaxonomy.cdm.database.DbSchemaValidation;
21
import eu.etaxonomy.cdm.database.ICdmDataSource;
22
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;
23
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
24
import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;
25
import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES;
26
import eu.etaxonomy.cdm.io.common.IImportConfigurator.EDITOR;
27
import eu.etaxonomy.cdm.io.common.Source;
28
import eu.etaxonomy.cdm.model.description.Feature;
29
import eu.etaxonomy.cdm.model.description.FeatureNode;
30
import eu.etaxonomy.cdm.model.description.FeatureTree;
31
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
32

  
33

  
34
/**
35
 * TODO add the following to a wiki page:
36
 * HINT: If you are about to import into a mysql data base running under windows and if you wish to dump and restore the resulting data bas under another operation systen 
37
 * you must set the mysql system variable lower_case_table_names = 0 in order to create data base with table compatible names.
38
 * 
39
 * 
40
 * @author a.mueller
41
 *
42
 */
43
public class EuroMedActivator {
44
	@SuppressWarnings("unused")
45
	private static final Logger logger = Logger.getLogger(EuroMedActivator.class);
46

  
47
	//database validation status (create, update, validate ...)
48
	static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;
49
//	static final Source berlinModelSource = BerlinModelSources.euroMed();
50
	static final Source berlinModelSource = BerlinModelSources.EDIT_CICHORIEAE();
51
//	static final Source berlinModelSource = BerlinModelSources.EDIT_Diptera();
52
	
53
	static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_andreasM();
54
	static final int sourceSecId = 7000000; //500000
55
	
56
	static final UUID classificationUuid = UUID.fromString("314a68f9-8449-495a-91c2-92fde8bcf344");
57
	
58
	static final UUID featureTreeUuid = UUID.fromString("6a5e1c2b-ec0d-46c8-9c7d-a2059267ffb7");
59
	static final Object[] featureKeyList = new Integer[]{1, 31, 4, 98, 41}; 	
60
	
61
	// set to zero for unlimited nameFacts
62
	static final int maximumNumberOfNameFacts = 0;
63
	
64
	static final int partitionSize = 2000;
65
	
66
	//check - import
67
	static final CHECK check = CHECK.CHECK_AND_IMPORT;
68

  
69
	//editor - import
70
	static final EDITOR editor = EDITOR.EDITOR_AS_EDITOR;
71
	
72
	//NomeclaturalCode
73
	static final NomenclaturalCode nomenclaturalCode = NomenclaturalCode.ICBN;
74

  
75
	//ignore null
76
	static final boolean ignoreNull = true;
77
	
78
	static boolean useClassification = true;
79

  
80

  
81
// **************** ALL *********************	
82
//
83
	static final boolean doUser = true;
84
	//authors
85
	static final boolean doAuthors = true;
86
	//references
87
	static final DO_REFERENCES doReferences =  DO_REFERENCES.ALL;
88
	//names
89
	static final boolean doTaxonNames = true;
90
	static final boolean doRelNames = true;
91
	static final boolean doNameStatus = true;
92
	static final boolean doTypes = true;
93
	static final boolean doNameFacts = true;
94
	
95
	//taxa
96
	static final boolean doTaxa = true;
97
	static final boolean doRelTaxa = true;
98
	static final boolean doFacts = true;
99
	static final boolean doOccurences = true;
100
	static final boolean doCommonNames = true;
101

  
102
	//etc.
103
	static final boolean doMarker = true;
104

  
105
	
106
// **************** SELECTED *********************
107

  
108
//	static final boolean doUser = true;
109
//	//authors
110
//	static final boolean doAuthors = false;
111
//	//references
112
//	static final DO_REFERENCES doReferences =  DO_REFERENCES.NONE;
113
//	//names
114
//	static final boolean doTaxonNames = false;
115
//	static final boolean doRelNames = false;
116
//	static final boolean doNameStatus = false;
117
//	static final boolean doTypes = false;
118
//	static final boolean doNameFacts = false;
119
//	
120
//	//taxa 
121
//	static final boolean doTaxa = false;
122
//	static final boolean doRelTaxa = false;
123
//	static final boolean doFacts = false;
124
//	static final boolean doOccurences = false;
125
//	
126
//	//etc.
127
//	static final boolean doMarker = false;
128
	
129
	
130
	/**
131
	 * @param args
132
	 */
133
	public static void main(String[] args) {
134
		System.out.println("Start import from BerlinModel("+ berlinModelSource.getDatabase() + ") to " + cdmDestination.getDatabase() + " ...");
135
		
136
		//make BerlinModel Source
137
		Source source = berlinModelSource;
138
		ICdmDataSource destination = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;
139
				
140
		BerlinModelImportConfigurator bmImportConfigurator = BerlinModelImportConfigurator.NewInstance(source,  destination);
141
		
142
		bmImportConfigurator.setClassificationUuid(classificationUuid);
143
		bmImportConfigurator.setSourceSecId(sourceSecId);
144
		
145
		bmImportConfigurator.setNomenclaturalCode(nomenclaturalCode);
146

  
147
		bmImportConfigurator.setIgnoreNull(ignoreNull);
148
		bmImportConfigurator.setDoAuthors(doAuthors);
149
		bmImportConfigurator.setDoReferences(doReferences);
150
		bmImportConfigurator.setDoTaxonNames(doTaxonNames);
151
		bmImportConfigurator.setDoRelNames(doRelNames);
152
		bmImportConfigurator.setDoNameStatus(doNameStatus);
153
		bmImportConfigurator.setDoTypes(doTypes);
154
		bmImportConfigurator.setDoNameFacts(doNameFacts);
155
		bmImportConfigurator.setUseClassification(useClassification);
156
		
157
		bmImportConfigurator.setDoTaxa(doTaxa);
158
		bmImportConfigurator.setDoRelTaxa(doRelTaxa);
159
		bmImportConfigurator.setDoFacts(doFacts);
160
		bmImportConfigurator.setDoOccurrence(doOccurences);
161
		bmImportConfigurator.setDoCommonNames(doCommonNames);
162
		
163
		bmImportConfigurator.setDoMarker(doMarker);
164
		bmImportConfigurator.setDoUser(doUser);
165
		bmImportConfigurator.setEditor(editor);
166
		bmImportConfigurator.setDbSchemaValidation(hbm2dll);
167
		
168
		// maximum number of name facts to import
169
		bmImportConfigurator.setMaximumNumberOfNameFacts(maximumNumberOfNameFacts);
170
		
171
		bmImportConfigurator.setCheck(check);
172
		bmImportConfigurator.setEditor(editor);
173
		bmImportConfigurator.setRecordsPerTransaction(partitionSize);
174
		
175
		// invoke import
176
		CdmDefaultImport<BerlinModelImportConfigurator> bmImport = new CdmDefaultImport<BerlinModelImportConfigurator>();
177
		bmImport.invoke(bmImportConfigurator);
178
		
179
		if (doFacts && bmImportConfigurator.getCheck().equals(CHECK.CHECK_AND_IMPORT)  || bmImportConfigurator.getCheck().equals(CHECK.IMPORT_WITHOUT_CHECK)    ){
180
			ICdmApplicationConfiguration app = bmImport.getCdmAppController();
181
			
182
			//make feature tree
183
			FeatureTree tree = TreeCreator.flatTree(featureTreeUuid, bmImportConfigurator.getFeatureMap(), featureKeyList);
184
			FeatureNode imageNode = FeatureNode.NewInstance(Feature.IMAGE());
185
			tree.getRoot().addChild(imageNode);
186
			FeatureNode distributionNode = FeatureNode.NewInstance(Feature.DISTRIBUTION());
187
			tree.getRoot().addChild(distributionNode, 2); 
188
			app.getFeatureTreeService().saveOrUpdate(tree);
189
		}
190
		
191
		System.out.println("End import from BerlinModel ("+ source.getDatabase() + ")...");
192

  
193
	}
194

  
195
}
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/FaunaEuropaeaActivator.java
1
/**
2
* Copyright (C) 2007 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

  
10
package eu.etaxonomy.cdm.app.pesi;
11

  
12
import java.util.UUID;
13

  
14
import org.apache.log4j.Logger;
15

  
16
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
17
import eu.etaxonomy.cdm.app.common.CdmDestinations;
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.IImportConfigurator.DO_REFERENCES;
23
import eu.etaxonomy.cdm.io.common.Source;
24
import eu.etaxonomy.cdm.io.pesi.faunaEuropaea.FaunaEuropaeaImportConfigurator;
25
import eu.etaxonomy.cdm.model.description.Feature;
26
import eu.etaxonomy.cdm.model.description.FeatureNode;
27
import eu.etaxonomy.cdm.model.description.FeatureTree;
28
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
29

  
30
/**
31
 * @author a.babadshanjan
32
 * @created 12.05.2009
33
 */
34
public class FaunaEuropaeaActivator {
35
	@SuppressWarnings("unused")
36
	private static final Logger logger = Logger.getLogger(FaunaEuropaeaActivator.class);
37

  
38
	static final Source faunaEuropaeaSource = FaunaEuropaeaSources.faunaEu_1_3();
39
	static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_andreasM();
40
	
41
	static final int limitSave = 2000;
42

  
43
//	static final CHECK check = CHECK.CHECK_AND_IMPORT;
44
	static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK;
45
	static DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
46
//	static DbSchemaValidation dbSchemaValidation = DbSchemaValidation.UPDATE;
47
//	static DbSchemaValidation dbSchemaValidation = DbSchemaValidation.VALIDATE;
48
	static final NomenclaturalCode nomenclaturalCode  = NomenclaturalCode.ICZN;
49

  
50
// ****************** ALL *****************************************
51
	
52
	// Fauna Europaea to CDM import
53
	static final boolean doAuthors = true;
54
	static final boolean doTaxa = true;
55
	static final boolean doBasionyms = true;
56
	static final boolean doTaxonomicallyIncluded = true;
57
	static final boolean doMisappliedNames = true;
58
	static final boolean doHeterotypicSynonyms = true;
59
	static final DO_REFERENCES doReferences =  DO_REFERENCES.ALL;
60
	static final boolean doDistributions = true;
61
	static final boolean makeFeatureTree = true;
62
    // CDM to CDM import
63
	static final boolean doHeterotypicSynonymsForBasionyms = true;
64
	
65
// ************************ NONE **************************************** //
66
		
67
	// Fauna Europaea to CDM import
68
//	static final boolean doAuthors = false;
69
//	static final boolean doTaxa = false;
70
//	static final boolean doBasionyms = false;
71
//	static final boolean doTaxonomicallyIncluded = false;
72
//	static final boolean doMisappliedNames = false;
73
//	static final boolean doHeterotypicSynonyms = false;
74
//	static final DO_REFERENCES doReferences =  DO_REFERENCES.NONE;
75
//	static final boolean doDistributions = false;
76
//	static final boolean makeFeatureTree = false;
77
//    // CDM to CDM import
78
//	static final boolean doHeterotypicSynonymsForBasionyms = false;
79
	
80
	
81
	/**
82
	 * @param args
83
	 */
84
	public static void main(String[] args) {
85
		
86
		ICdmDataSource destination = cdmDestination;
87
		System.out.println("Starting import from Fauna Europaea (" + faunaEuropaeaSource.getDatabase() + ") to CDM (" + destination.getDatabase() + ")...");
88

  
89
				// invoke Fauna Europaea to CDM import
90
		
91
		FaunaEuropaeaImportConfigurator fauEuImportConfigurator = 
92
			FaunaEuropaeaImportConfigurator.NewInstance(faunaEuropaeaSource,  destination);
93
		
94
		fauEuImportConfigurator.setDbSchemaValidation(dbSchemaValidation);
95
		fauEuImportConfigurator.setNomenclaturalCode(nomenclaturalCode);
96
		fauEuImportConfigurator.setCheck(check);
97

  
98
		fauEuImportConfigurator.setDoAuthors(doAuthors);
99
		fauEuImportConfigurator.setDoTaxa(doTaxa);
100
		fauEuImportConfigurator.setDoReferences(doReferences);
101
		fauEuImportConfigurator.setDoOccurrence(doDistributions);
102
		fauEuImportConfigurator.setDoTaxonomicallyIncluded(doTaxonomicallyIncluded);
103
		fauEuImportConfigurator.setDoBasionyms(doBasionyms);
104
		fauEuImportConfigurator.setDoMisappliedNames(doMisappliedNames);
105
		fauEuImportConfigurator.setDoHeterotypicSynonyms(doHeterotypicSynonyms);
106
		fauEuImportConfigurator.setDoHeterotypicSynonymsForBasionyms(doHeterotypicSynonymsForBasionyms);
107
		
108
		CdmDefaultImport<FaunaEuropaeaImportConfigurator> fauEuImport = 
109
			new CdmDefaultImport<FaunaEuropaeaImportConfigurator>();
110
		try {
111
			fauEuImport.invoke(fauEuImportConfigurator);
112
		} catch (Exception e) {
113
			System.out.println("ERROR in Fauna Europaea to CDM import");
114
			e.printStackTrace();
115
		}
116

  
117
		// invoke CDM to CDM import
118
		
119
//		System.out.println("Starting import from CDM to CDM (" + destination.getDatabase() + ")...");
120
//		
121
//		CdmImportConfigurator cdmImportConfigurator = 
122
//			CdmImportConfigurator.NewInstance(destination, destination);
123
//		
124
//		cdmImportConfigurator.setDbSchemaValidation(DbSchemaValidation.VALIDATE);
125
//		cdmImportConfigurator.setNomenclaturalCode(nomenclaturalCode);
126
//		cdmImportConfigurator.setCheck(check);
127
//
128
//		cdmImportConfigurator.setDoHeterotypicSynonymsForBasionyms(doHeterotypicSynonymsForBasionyms);
129
//		cdmImportConfigurator.setDoAuthors(false);
130
//		cdmImportConfigurator.setDoTaxa(false);
131
//		cdmImportConfigurator.setDoReferences(DO_REFERENCES.NONE);
132
//		cdmImportConfigurator.setDoOccurrence(false);
133
//		cdmImportConfigurator.setLimitSave(limitSave);
134
//
135
//		CdmDefaultImport<CdmImportConfigurator> cdmImport = 
136
//			new CdmDefaultImport<CdmImportConfigurator>();
137
//		try {
138
//			cdmImport.invoke(cdmImportConfigurator);
139
//		} catch (Exception e) {
140
//			System.out.println("ERROR in CDM to CDM import");
141
//			e.printStackTrace();
142
//		}
143
		
144
		//make feature tree
145
		
146
		if (makeFeatureTree == true) {
147
			FeatureTree featureTree = FeatureTree.NewInstance(UUID.fromString("ff59b9ad-1fb8-4aa4-a8ba-79d62123d0fb"));
148
			FeatureNode root = featureTree.getRoot();
149

  
150
			ICdmApplicationConfiguration app = fauEuImport.getCdmAppController();
151
			Feature citationFeature = (Feature)app.getTermService().find(UUID.fromString("99b2842f-9aa7-42fa-bd5f-7285311e0101"));
152
			FeatureNode citationNode = FeatureNode.NewInstance(citationFeature);
153
			root.addChild(citationNode);
154
			Feature distributionFeature = (Feature)app.getTermService().find(UUID.fromString("9fc9d10c-ba50-49ee-b174-ce83fc3f80c6"));
155
			FeatureNode distributionNode = FeatureNode.NewInstance(distributionFeature);
156
			root.addChild(distributionNode);
157

  
158
			app.getFeatureTreeService().saveOrUpdate(featureTree);
159
		}
160
		
161
		System.out.println("End importing Fauna Europaea data");
162
	}
163

  
164
}
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/FaunaEuropaeaSources.java
1
/**
2
* Copyright (C) 2007 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

  
10
package eu.etaxonomy.cdm.app.pesi;
11

  
12
import org.apache.log4j.Logger;
13

  
14
import eu.etaxonomy.cdm.app.common.ImportUtils;
15
import eu.etaxonomy.cdm.common.AccountStore;
16
import eu.etaxonomy.cdm.io.common.Source;
17

  
18
/**
19
 * @author a.babadshanjan
20
 * @created 12.05.2009
21
 */
22
public class FaunaEuropaeaSources {
23
	@SuppressWarnings("unused")
24
	private static final Logger logger = Logger.getLogger(FaunaEuropaeaSources.class);
25
	
26
	public static Source faunEu(){
27
		//	Fauna Europaea
28
		
29
		String dbms = Source.SQL_SERVER_2008;
30
           
31
		String strServer = "BGBM42";               // "192.168.1.36";
32
            
33
		String strDB = "FaunEu";
34
		int port = 1433;
35
		String userName = "WebUser";
36
		return  ImportUtils.makeSource(dbms, strServer, strDB, port, userName, null);
37
	}
38
	
39
	public static Source faunaEu_1_3(){
40
		//	Fauna Europaea
41
		
42
		String dbms = Source.SQL_SERVER_2008;
43
           
44
		String strServer = "BGBM42";               // "192.168.1.36";
45
            
46
		String strDB = "FaunaEu_1_3";
47
		int port = 1433;
48
		String userName = "WebUser";
49
		return  ImportUtils.makeSource(dbms, strServer, strDB, port, userName, null);
50
	}
51
	
52
	
53
	public static Source PESI_ERMS(){
54
		//	BerlinModel - Pesi-ERMS
55
		String dbms = Source.SQL_SERVER_2008;
56
		String strServer = "BGBM42";
57
		String strDB = "ERMS";
58
		int port = 1433;
59
		String userName = "WebUser";
60
		return  makeSource(dbms, strServer, strDB, port, userName, null);
61
	}
62
	
63
	
64
	/**
65
	 * Initializes the source.
66
	 * @param dbms
67
	 * @param strServer
68
	 * @param strDB
69
	 * @param port
70
	 * @param userName
71
	 * @param pwd
72
	 * @return the source
73
	 */
74
	private static Source makeSource(String dbms, String strServer, String strDB, int port, String userName, String pwd ){
75
		//establish connection
76
		Source source = null;
77
		source = new Source(dbms, strServer, strDB);
78
		source.setPort(port);
79
			
80
		pwd = AccountStore.readOrStorePassword(dbms, strServer, userName, pwd);
81
		source.setUserAndPwd(userName, pwd);
82
		// write pwd to account store
83
		return source;
84
	}
85

  
86
	
87
}
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/PesiDestinations.java
1
// $Id$
2
/**
3
* Copyright (C) 2009 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package eu.etaxonomy.cdm.app.pesi;
11

  
12

  
13
import org.apache.log4j.Logger;
14

  
15
import eu.etaxonomy.cdm.common.AccountStore;
16
import eu.etaxonomy.cdm.io.common.Source;
17

  
18
/**
19
 * @author e.-m.lee
20
 * @date 16.02.2010
21
 *
22
 */
23
public class PesiDestinations {
24
	@SuppressWarnings("unused")
25
	private static final Logger logger = Logger.getLogger(PesiDestinations.class);
26
	
27
	public static Source pesi_test_local_PESI_V10(){
28
		//	CDM - PESI
29
		String dbms = Source.SQL_SERVER_2008;
30
		String strServer = "C206\\MSSQLSERVER2";
31
		String strDB = "PESI_V10";
32
		int port = 1433;
33
		String userName = "sa";
34
		String pwd = "bewell";
35
		return makeSource(dbms, strServer, strDB, port, userName, pwd);
36
	}
37
	
38
	public static Source pesi_test_local_CDM_DWH_FaEu(){
39
		//	CDM - PESI
40
		String dbms = Source.SQL_SERVER_2008;
41
		String strServer = "C206\\MSSQLSERVER2";
42
		String strDB = "CDM_DWH_FaEu";
43
		int port = 1433;
44
		String userName = "sa";
45
		String pwd = "bewell";
46
		return makeSource(dbms, strServer, strDB, port, userName, pwd);
47
	}
48
	
49
	public static Source pesi_test_local_PESI_V11(){
50
		//	CDM - PESI
51
		String dbms = Source.SQL_SERVER_2008;
52
		String strServer = "C206\\MSSQLSERVER2";
53
		String strDB = "PESI_V11_LOCAL";
54
		int port = 1433;
55
		String userName = "sa";
56
		String pwd = "bewell";
57
		return makeSource(dbms, strServer, strDB, port, userName, pwd);
58
	}
59
	
60
	public static Source pesi_test_bgbm42_CDM_DWH_FaEu(){
61
		//	CDM - PESI
62
		String dbms = Source.SQL_SERVER_2008;
63
		String strServer = "BGBM42";
64
		String strDB = "CDM_DWH_FaEu";
65
		int port = 1433;
66
		String userName = "WebUser";
67
		String pwd = "";
68
		return makeSource(dbms, strServer, strDB, port, userName, pwd);
69
	}
70
	
71
	public static Source pesi_test_bgbm42_PESI_V11(){
72
		//	CDM - PESI
73
		String dbms = Source.SQL_SERVER_2008;
74
		String strServer = "BGBM42";
75
		String strDB = "PESI_v11";
76
		int port = 1433;
77
		String userName = "WebUser";
78
		String pwd = "";
79
		return makeSource(dbms, strServer, strDB, port, userName, pwd);
80
	}
81
	
82
	/**
83
	 * Initializes the source.
84
	 * @param dbms
85
	 * @param strServer
86
	 * @param strDB
87
	 * @param port
88
	 * @param userName
89
	 * @param pwd
90
	 * @return the source
91
	 */
92
	private static Source makeSource(String dbms, String strServer, String strDB, int port, String userName, String pwd ){
93
		//establish connection
94
		Source source = null;
95
		source = new Source(dbms, strServer, strDB);
96
		source.setPort(port);
97
			
98
		pwd = AccountStore.readOrStorePassword(dbms, strServer, userName, pwd);
99
		source.setUserAndPwd(userName, pwd);
100
		// write pwd to account store
101
		return source;
102
	}
103

  
104
}
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/PesiExportActivator.java
1
// $Id$
2
/**
3
* Copyright (C) 2009 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package eu.etaxonomy.cdm.app.pesi;
11

  
12
import java.util.UUID;
13

  
14
import org.apache.log4j.Logger;
15

  
16
import eu.etaxonomy.cdm.app.common.CdmDestinations;
17
import eu.etaxonomy.cdm.database.ICdmDataSource;
18
import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
19
import eu.etaxonomy.cdm.io.common.IExportConfigurator.CHECK;
20
import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES;
21
import eu.etaxonomy.cdm.io.common.Source;
22
import eu.etaxonomy.cdm.io.pesi.out.PesiExportConfigurator;
23
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
24

  
25
/**
26
 * @author a.mueller
27
 * @author e.-m.lee
28
 * @date 16.02.2010
29
 *
30
 */
31
public class PesiExportActivator {
32

  
33
	@SuppressWarnings("unused")
34
	private static final Logger logger = Logger.getLogger(PesiExportActivator.class);
35

  
36
	//database validation status (create, update, validate ...)
37
	static final Source pesiDestination = PesiDestinations.pesi_test_local_CDM_DWH_FaEu();
38
	static final ICdmDataSource cdmSource = CdmDestinations.cdm_test_jaxb();
39
	static final UUID secUuid = UUID.fromString("d03ef02a-f226-4cb1-bdb4-f6c154f08a34");
40
	static final int sourceSecId = 7331;
41
	static final int isHomotypicId = 72;
42
	static boolean useClassification = true;
43
	
44
	//check - export
45
	static final CHECK check = CHECK.EXPORT_WITHOUT_CHECK;
46

  
47
	//NomeclaturalCode
48
	static final NomenclaturalCode nomenclaturalCode  = NomenclaturalCode.ICBN;
49

  
50
// ****************** ALL *****************************************
51
	
52
	//authors
53
	static final boolean doAuthors = true;
54
	//references
55
	static final DO_REFERENCES doReferences =  DO_REFERENCES.ALL;
56
	//names
57
	static final boolean doTaxonNames = true;
58
	static final boolean doTypes = false;
59
	static final boolean doNameFacts = false;
60
	
61
	//taxa
62
	static final boolean doTaxa = true;
63
	static final boolean doRelTaxa = true;
64
	static final boolean doFacts = true;
65
	static final boolean doOccurences = true;
66

  
67
// ************************ NONE **************************************** //
68
	
69
//	//authors
70
//	static final boolean doAuthors = false;
71
//	static final boolean doAuthorTeams = false;
72
//	//references
73
//	static final DO_REFERENCES doReferences =  DO_REFERENCES.ALL;
74
//	//names
75
//	static final boolean doTaxonNames = true;
76
//	static final boolean doTypes = false;
77
//	static final boolean doNameFacts = false;
78
//	
79
//	//taxa
80
//	static final boolean doTaxa = false;
81
//	static final boolean doRelTaxa = false;
82
//	static final boolean doFacts = false;
83
//	static final boolean doOccurences = false;
84
//	
85
	
86
	public boolean 	doExport(ICdmDataSource source){
87
		System.out.println("Start export to PESI ("+ pesiDestination.getDatabase() + ") ...");
88
		
89
		//make PESI Source
90
		Source destination = pesiDestination;
91
		
92
		PesiExportConfigurator pesiExportConfigurator = PesiExportConfigurator.NewInstance(destination, source);
93
		
94
		pesiExportConfigurator.setDoNameFacts(doNameFacts);
95
		
96
		pesiExportConfigurator.setDoTaxa(doTaxa);
97
		pesiExportConfigurator.setDoRelTaxa(doRelTaxa);
98
		pesiExportConfigurator.setDoFacts(doFacts);
99
		pesiExportConfigurator.setDoOccurrence(doOccurences);
100
//		pesiExportConfigurator.setIsHomotypicId(isHomotypicId);
101
		pesiExportConfigurator.setCheck(check);
102
		pesiExportConfigurator.setUseClassification(useClassification);
103

  
104
		// invoke export
105
		CdmDefaultExport<PesiExportConfigurator> pesiExport = new CdmDefaultExport<PesiExportConfigurator>();
106
		boolean result = pesiExport.invoke(pesiExportConfigurator);
107
		
108
		System.out.println("End export to PESI ("+ destination.getDatabase() + ")..." + (result? "(successful)":"(with errors)"));
109
		return result;
110
	}
111
		
112
	/**
113
	 * @param args
114
	 */
115
	public static void main(String[] args) {
116
		PesiExportActivator ex = new PesiExportActivator();
117
		ICdmDataSource source = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmSource;
118

  
119
		ex.doExport(source);
120
	}
121

  
122
}
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/erms/ErmsActivator.java
1
/**
2
* Copyright (C) 2007 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

  
10
package eu.etaxonomy.cdm.app.pesi.erms;
11

  
12
import java.util.UUID;
13

  
14
import org.apache.log4j.Logger;
15

  
16
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
17
import eu.etaxonomy.cdm.app.common.CdmDestinations;
18
import eu.etaxonomy.cdm.app.pesi.FaunaEuropaeaSources;
19
import eu.etaxonomy.cdm.database.DbSchemaValidation;
20
import eu.etaxonomy.cdm.database.ICdmDataSource;
21
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
22
import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;
23
import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES;
24
import eu.etaxonomy.cdm.io.common.Source;
25
import eu.etaxonomy.cdm.io.pesi.erms.ErmsImportConfigurator;
26
import eu.etaxonomy.cdm.model.common.ISourceable;
27
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
28
import eu.etaxonomy.cdm.model.name.ZoologicalName;
29

  
30

  
31
/**
32
 * TODO add the following to a wiki page:
33
 * HINT: If you are about to import into a mysql data base running under windows and if you wish to dump and restore the resulting data base under another operation systen 
34
 * you must set the mysql system variable lower_case_table_names = 0 in order to create data base with table compatible names.
35
 * 
36
 * 
37
 * @author a.mueller
38
 *
39
 */
40
public class ErmsActivator {
41
	private static final Logger logger = Logger.getLogger(ErmsActivator.class);
42

  
43
	//database validation status (create, update, validate ...)
44
	static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;
45
	static final Source ermsSource = FaunaEuropaeaSources.PESI_ERMS();
46
	static final ICdmDataSource cdmDestination = CdmDestinations.localH2Erms();
47
	static final UUID treeUuid = UUID.fromString("8bd27d84-fd4f-4bfa-bde0-3e6b7311b334");
48
	static final UUID featureTreeUuid = UUID.fromString("33cbf7a8-0c47-4d47-bd11-b7d77a38d0f6");
49
	//static final Object[] featureKeyList = new Integer[]{1,4,5,10,11,12,13,14, 249, 250, 251, 252, 253}; 
50
	
51
	//check - import
52
	static final CHECK check = CHECK.CHECK_AND_IMPORT;
53

  
54
	static final int partitionSize = 2000;
55

  
56

  
57
	//NomeclaturalCode
58
	static final NomenclaturalCode nomenclaturalCode = NomenclaturalCode.ICZN;
59

  
60
	//ignore null
61
	static final boolean ignoreNull = true;
62
	
63
// ***************** ALL ************************************************//
64
	
65
	//references
66
	static final DO_REFERENCES doReferences =  DO_REFERENCES.ALL;
67
	
68
	//taxa
69
	static final boolean doTaxa = true;
70
	static final boolean doRelTaxa = true;
71
	static final boolean doLinks = true;
72
	static final boolean doOccurences = true;
73
	static final boolean doImages = true;
74
	
75
	
76
//******************** NONE ***************************************//
77
	
78

  
79
//	//references
80
//	static final DO_REFERENCES doReferences =  DO_REFERENCES.NONE;
81
//	
82
//	//taxa
83
//	static final boolean doTaxa = false;
84
//	static final boolean doRelTaxa = false;
85
//	static final boolean doLinks = false;
86
//	static final boolean doOccurences = false;
87
//	
88
	
89
	
90
	/**
91
	 * @param args
92
	 */
93
	public static void main(String[] args) {
94
		System.out.println("Start import from ("+ ermsSource.getDatabase() + ") ...");
95
		
96
		//make ERMS Source
97
		Source source = ermsSource;
98
		ICdmDataSource destination = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;
99
		
100
		ErmsImportConfigurator ermsImportConfigurator = ErmsImportConfigurator.NewInstance(source,  destination);
101
		
102
		ermsImportConfigurator.setClassificationUuid(treeUuid);
103
		ermsImportConfigurator.setNomenclaturalCode(nomenclaturalCode);
104

  
105
		ermsImportConfigurator.setIgnoreNull(ignoreNull);
106
		ermsImportConfigurator.setDoReferences(doReferences);
107
		
108
		ermsImportConfigurator.setDoTaxa(doTaxa);
109
		ermsImportConfigurator.setDoRelTaxa(doRelTaxa);
110
		ermsImportConfigurator.setDoLinks(doLinks);
111
		ermsImportConfigurator.setDoOccurrence(doOccurences);
112
		ermsImportConfigurator.setDbSchemaValidation(hbm2dll);
113

  
114
		ermsImportConfigurator.setCheck(check);
115
		ermsImportConfigurator.setRecordsPerTransaction(partitionSize);
116

  
117
		// invoke import
118
		CdmDefaultImport<ErmsImportConfigurator> ermsImport = new CdmDefaultImport<ErmsImportConfigurator>();
119
		ermsImport.invoke(ermsImportConfigurator);
120
		
121
		if (ermsImportConfigurator.getCheck().equals(CHECK.CHECK_AND_IMPORT)  || ermsImportConfigurator.getCheck().equals(CHECK.IMPORT_WITHOUT_CHECK)    ){
122
			ICdmApplicationConfiguration app = ermsImport.getCdmAppController();
123
			ISourceable obj = app.getCommonService().getSourcedObjectByIdInSource(ZoologicalName.class, "1000027", null);
124
			logger.info(obj);
125
			
126
//			//make feature tree
127
//			FeatureTree tree = TreeCreator.flatTree(featureTreeUuid, ermsImportConfigurator.getFeatureMap(), featureKeyList);
128
//			app = ermsImport.getCdmAppController();
129
//			app.getFeatureTreeService().saveOrUpdate(tree);
130
		}
131
		System.out.println("End import from ("+ source.getDatabase() + ")...");
132
	}
133

  
134
}
app-import/src/main/java/eu/etaxonomy/cdm/app/pesi/merging/FaunaEuErmsFindIdenticalNamesActivator.java
1
package eu.etaxonomy.cdm.app.pesi.merging;
2

  
3
import java.io.FileWriter;
4
import java.io.IOException;
5
import java.util.ArrayList;
6
import java.util.Iterator;
7
import java.util.List;
8
import java.util.Set;
9

  
10
import eu.etaxonomy.cdm.api.application.CdmApplicationController;
11
import eu.etaxonomy.cdm.app.common.CdmDestinations;
12
import eu.etaxonomy.cdm.app.util.TestDatabase;
13
import eu.etaxonomy.cdm.database.DbSchemaValidation;
14
import eu.etaxonomy.cdm.database.ICdmDataSource;
15
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
16
import eu.etaxonomy.cdm.io.pesi.merging.FaunaEuErmsMerging;
17
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
18
import eu.etaxonomy.cdm.model.name.Rank;
19
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
20
import eu.etaxonomy.cdm.model.name.ZoologicalName;
21
import eu.etaxonomy.cdm.model.taxon.Taxon;
22
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
23

  
24
public class FaunaEuErmsFindIdenticalNamesActivator {
25

  
26
	static final ICdmDataSource faunaEuropaeaSource = CdmDestinations.cdm_test_jaxb2();
27
	//static final ICdmDataSource ermsSource = CdmDestinations.cdm_test_andreasM();
28
	
29
	//TODO hole aus beiden DB alle TaxonNameBases
30
	
31
	
32
	private CdmApplicationController initDb(ICdmDataSource db) {
33

  
34
		// Init source DB
35
		CdmApplicationController appCtrInit = null;
36

  
37
		appCtrInit = TestDatabase.initDb(db, DbSchemaValidation.VALIDATE, false);
38

  
39
		return appCtrInit;
40
	}
41
	
42
	
43
	/**
44
	 * @param args
45
	 */
46
	public static void main(String[] args) {
47
		
48
		FaunaEuErmsFindIdenticalNamesActivator sc = new FaunaEuErmsFindIdenticalNamesActivator();
49
		
50
		CdmApplicationController appCtrFaunaEu = sc.initDb(faunaEuropaeaSource);
51
		String sFileName = "c:\\test";
52
		//CdmApplicationController appCtrErms = sc.initDb(ermsSource);
53
		List<String> propertyPaths = new ArrayList<String>();
54
		propertyPaths.add("sources.*");
55
		propertyPaths.add("sources.idInSource");
56
		propertyPaths.add("sources.idNamespace");
57
		propertyPaths.add("taxonBases.*");
58
		propertyPaths.add("taxonBases.relationsFromThisTaxon");
59
		propertyPaths.add("taxonBases.taxonNodes.*");
60
		propertyPaths.add("taxonBases.taxonNodes.parent.*");
61
		propertyPaths.add("taxonBases.taxonNodes.parent.taxon.name.*");
62
		System.err.println("Start getIdenticalNames...");
63
		List<TaxonNameBase> namesOfIdenticalTaxa = appCtrFaunaEu.getTaxonService().findIdenticalTaxonNameIds(propertyPaths);
64
		//List<UUID> namesOfIdenticalTaxa = appCtrFaunaEu.getTaxonService().findIdenticalTaxonNameIds(propertyPaths);
65
		
66
		System.err.println("first name: " + namesOfIdenticalTaxa.get(0) + " " + namesOfIdenticalTaxa.size());
67
		TaxonNameBase zooName = (TaxonNameBase)namesOfIdenticalTaxa.get(0);
68
		System.err.println(zooName + " nr of taxa " + namesOfIdenticalTaxa.size());
69
		//TaxonNameComparator taxComp = new TaxonNameComparator();
70
		
71
		//Collections.sort(namesOfIdenticalTaxa,taxComp);
72
		System.err.println(namesOfIdenticalTaxa.get(0) + " - " + namesOfIdenticalTaxa.get(1) + " - " + namesOfIdenticalTaxa.get(2));
73
		List<FaunaEuErmsMerging> mergingObjects = new ArrayList<FaunaEuErmsMerging>();
74
		FaunaEuErmsMerging mergeObject;
75
		TaxonNameBase faunaEuTaxName;
76
		TaxonNameBase ermsTaxName;
77
				
78
		mergingObjects= sc.createMergeObjects(namesOfIdenticalTaxa, appCtrFaunaEu);
79
		
80
		sc.writeSameNamesdifferentAuthorToCsv(mergingObjects, sFileName + "_authors.csv");
81
		sc.writeSameNamesdifferentStatusToCsv(mergingObjects, sFileName + "_status.csv");
82
		sc.writeSameNamesToCsVFile(mergingObjects, sFileName + "_names.csv");
83
		sc.writeSameNamesdifferentPhylumToCsv(mergingObjects, sFileName + "_phylum.csv");
84
		
85
		
86
		System.out.println("End merging Fauna Europaea and Erms");
87
		
88
	}
89
	
90
	private boolean writeSameNamesToCsVFile(
91
			List<FaunaEuErmsMerging> mergingObjects, String string) {
92
	    try{
93
		FileWriter writer = new FileWriter(string);
94
	
95
	    //create Header
96
	    String firstLine = "same names";
97
	    createHeader(writer, firstLine);
98
		for (FaunaEuErmsMerging merging : mergingObjects){
99
	    	writeCsvLine(writer, merging) ;
100
		}
101
		writer.flush();
102
		writer.close();
103
	}
104
	catch(IOException e)
105
	{
106
	 return false;
107
	} 
108
	return true;
109
	}
110

  
111

  
112
	private boolean writeSameNamesdifferentPhylumToCsv(List<FaunaEuErmsMerging> mergingObjects, String sfileName){
113
		try
114
		{
115
		    FileWriter writer = new FileWriter(sfileName);
116
		    
117
		    //create Header
118
		   String firstLine = "same names but different phylum";
119
		   createHeader(writer, firstLine);
120
		    
121
			//write data
122
			for (FaunaEuErmsMerging merging : mergingObjects){
123
		    	//TODO
124
				if ((merging.getPhylumInErms()== null )^ (merging.getPhylumInFaunaEu()== null)){
125
					writeCsvLine(writer, merging) ;
126
				}else if(!((merging.getPhylumInErms()==null) && (merging.getPhylumInFaunaEu()==null))){ 
127
					if(!merging.getPhylumInErms().equals(merging.getPhylumInFaunaEu())){
128
						writeCsvLine(writer, merging) ;
129
					}
130
				}
131
			}
132
			writer.flush();
133
			writer.close();
134
		}
135
		catch(IOException e)
136
		{
137
		 return false;
138
		} 
139
		return true;
140
	}
141
	
142
	private boolean writeSameNamesdifferentRankToCsv(List<FaunaEuErmsMerging> mergingObjects, String sfileName){
143
		try
144
		{
145
		    FileWriter writer = new FileWriter(sfileName);
146
		    String firstLine = "same names but different rank";
147
		    //create Header
148
		    createHeader(writer, firstLine);
149
			
150
			//write data
151
			for (FaunaEuErmsMerging merging : mergingObjects){
152
		    	
153
				if (!merging.getRankInErms().equals(merging.getRankInFaunaEu())){
154
					writeCsvLine(writer, merging);
155
				}
156
			}
157
			writer.flush();
158
			writer.close();
159
		}
160
		catch(IOException e)
161
		{
162
		 return false;
163
		} 
164
		return true;
165
	}
166
	
167
	private void createHeader(FileWriter writer, String firstLine) throws IOException{
168
		 	writer.append(firstLine);
169
		    writer.append('\n');
170
		    writer.append("uuid in Fauna Europaea");
171
			writer.append(';');
172
			writer.append("id in Fauna Europaea");
173
			writer.append(';');
174
			writer.append("name");
175
			writer.append(';');
176
			writer.append("author");
177
			writer.append(';');
178
			writer.append("rank");
179
			writer.append(';');
180
			writer.append("state");
181
			writer.append(';');
182
			writer.append("phylum");
183
			writer.append(';');
184
			writer.append("parent");
185
			writer.append(';');
186
			writer.append("parent rank");
187
			writer.append(';');
188
			
189
			writer.append("uuid in Erms");
190
			writer.append(';');
191
			writer.append("id in Erms");
192
			writer.append(';');
193
			writer.append("name");
194
			writer.append(';');
195
			writer.append("author");
196
			writer.append(';');
197
			writer.append("rank");
198
			writer.append(';');
199
			writer.append("state");
200
			writer.append(';');
201
			writer.append("phylum");
202
			writer.append(';');
203
			writer.append("parent");
204
			writer.append(';');
205
			writer.append("parent rank");
206
			writer.append('\n');
207
	}
208
	
209
	private boolean writeSameNamesdifferentStatusToCsv(List<FaunaEuErmsMerging> mergingObjects, String sfileName){
210
		try
211
		{
212
		    FileWriter writer = new FileWriter(sfileName);
213
		    
214
		    //create Header
215
		    String firstLine = "same names but different status";
216
		    createHeader(writer, firstLine);
217
		    
218
			//write data
219
			for (FaunaEuErmsMerging merging : mergingObjects){
220
		    	
221
				if (merging.isStatInErms()^merging.isStatInFaunaEu()){
222
					 writeCsvLine(writer, merging);
223
				}
224
			}
225
			
226
 
227
			writer.flush();
228
			writer.close();
229
		}
230
		catch(IOException e)
231
		{
232
		 return false;
233
		} 
234
		return true;
235
	}
236
	
237
	private boolean writeSameNamesdifferentAuthorToCsv(List<FaunaEuErmsMerging> mergingObjects, String sfileName){
238
		try
239
		{
240
		    FileWriter writer = new FileWriter(sfileName);
241
		    
242
		    //create Header
243
		   String firstLine = "same names but different authors";
244
		   createHeader(writer, firstLine);
245
		    
246
			//write data
247
			for (FaunaEuErmsMerging merging : mergingObjects){
248
		    	
249
				if (!merging.getAuthorInErms().equals(merging.getAuthorInFaunaEu())){
250
					 writeCsvLine(writer, merging);
251
				}
252
			}
253
			
254
 
255
			writer.flush();
256
			writer.close();
257
		}
258
		catch(IOException e)
259
		{
260
		 return false;
261
		} 
262
		return true;
263
	}
264
	
265
	private void writeCsvLine(FileWriter writer, FaunaEuErmsMerging merging) throws IOException{
266
		
267
		writer.append(merging.getUuidFaunaEu());
268
		writer.append(';');
269
		writer.append(merging.getIdInFaunaEu());
270
		writer.append(';');
271
		writer.append(merging.getNameCacheInFaunaEu());
272
		writer.append(';');
273
		writer.append(merging.getAuthorInFaunaEu());
274
		writer.append(';');
275
		writer.append(merging.getRankInFaunaEu());
276
		writer.append(';');
277
		if (merging.isStatInFaunaEu()){
278
			writer.append("accepted");
279
		}else{
280
			writer.append("synonym");
281
		}
282
		writer.append(';');
283
		writer.append(merging.getPhylumInFaunaEu());
284
		writer.append(';');
285
		writer.append(merging.getParentStringInFaunaEu());
286
		writer.append(';');
287
		writer.append(merging.getParentRankStringInFaunaEu());
288
		writer.append(';');
289
		
290
		writer.append(merging.getUuidErms());
291
		writer.append(';');
292
		writer.append(merging.getIdInErms());
293
		writer.append(';');
294
		writer.append(merging.getNameCacheInErms());
295
		writer.append(';');
296
		writer.append(merging.getAuthorInErms());
297
		writer.append(';');
298
		writer.append(merging.getRankInErms());
299
		writer.append(';');
300
		if (merging.isStatInErms()){
301
			writer.append("accepted");
302
		}else{
303
			writer.append("synonym");
304
		}
305
		
306
		writer.append(';');
307
		writer.append(merging.getPhylumInErms());
308
		writer.append(';');
309
		writer.append(merging.getParentStringInErms());
310
		writer.append(';');
311
		writer.append(merging.getParentRankStringInErms());
312
		writer.append('\n');
313
	}
314
	
315
	
316
	private List<FaunaEuErmsMerging> createMergeObjects(List<TaxonNameBase> names, CdmApplicationController appCtr){
317
		
318
		List<FaunaEuErmsMerging> merge = new ArrayList<FaunaEuErmsMerging>();
319
		ZoologicalName zooName, zooName2;
320
		FaunaEuErmsMerging mergeObject;
321
		String idInSource1;
322
		for (int i = 0; i<names.size()-1; i=i+2){
323
			zooName = (ZoologicalName)names.get(i);
324
			zooName2 = (ZoologicalName)names.get(i+1);
325
			mergeObject = new FaunaEuErmsMerging();
326
			//TODO:?berpr?fen, ob die beiden Namen identisch sind und aus unterschiedlichen DB kommen
327
			
328
			//getPhylum
329
			String phylum1 = null;
330
			if (!zooName.getRank().isHigher(Rank.PHYLUM())){
331
				phylum1 =appCtr.getTaxonService().getPhylumName(zooName);
332
			}
333
			
334
			String phylum2 = null;
335
			if (!zooName2.getRank().isHigher(Rank.PHYLUM())){
336
				phylum2 = appCtr.getTaxonService().getPhylumName(zooName2);
337
			}
338
			mergeObject.setPhylumInErms(phylum1);
339
			mergeObject.setPhylumInFaunaEu(phylum2);
340
			
341
			//getUuids
342
			mergeObject.setUuidErms(zooName.getUuid().toString());
343
			mergeObject.setUuidFaunaEu(zooName.getUuid().toString());
344
			
345
			Iterator sources = zooName.getSources().iterator();
346
			if (sources.hasNext()){
347
				IdentifiableSource source = (IdentifiableSource)sources.next();
348
				idInSource1 = source.getIdInSource();
349
				mergeObject.setIdInErms(idInSource1);
350
			}
351
			sources = zooName2.getSources().iterator();
352
			if (sources.hasNext()){
353
				IdentifiableSource source = (IdentifiableSource)sources.next();
354
				idInSource1 = source.getIdInSource();
355
				mergeObject.setIdInFaunaEu(idInSource1);
356
			}
357
			
358
			mergeObject.setNameCacheInErms(zooName.getNameCache());
359
			mergeObject.setNameCacheInFaunaEu(zooName2.getNameCache());
360
			
361
			mergeObject.setAuthorInErms(zooName.getAuthorshipCache());
362
			mergeObject.setAuthorInFaunaEu(zooName2.getAuthorshipCache());
363
			Set<Taxon> taxa = zooName.getTaxa();
364
			if (!taxa.isEmpty()){
365
				mergeObject.setStatInErms(true);
366
				Iterator taxaIterator = taxa.iterator();
367
				Taxon taxon = null;
368
				while (taxaIterator.hasNext()){
369
					taxon = (Taxon) taxaIterator.next();
370
					if (!taxon.isMisapplication()){
371
						break;
372
					}
373
				}
374
				Set<TaxonNode> nodes = taxon.getTaxonNodes();
375
				Iterator taxonNodeIterator = nodes.iterator();
376
				TaxonNode node, parentNode = null;
377
				while (taxonNodeIterator.hasNext()){
378
					node = (TaxonNode)taxonNodeIterator.next();
379
					if (!node.isTopmostNode()){
380
						parentNode = node.getParent();
381
					}
382
				}
383
				//TODO: ?ndern mit erweitertem Initializer..
384
				if (parentNode != null){
385
					ZoologicalName parentName = HibernateProxyHelper.deproxy(parentNode.getTaxon().getName(), ZoologicalName.class);
386
					String parentNameCache = parentName.getNameCache();
387
					mergeObject.setParentStringInErms(parentNameCache);
388
					mergeObject.setParentRankStringInErms(parentName.getRank().getLabel());
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff