Project

General

Profile

Download (4.22 KB) Statistics
| Branch: | Tag: | Revision:
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.wp6.palmae;
11

    
12
import java.io.File;
13
import java.net.MalformedURLException;
14
import java.net.URL;
15
import java.util.UUID;
16

    
17
import org.apache.log4j.Logger;
18
import org.springframework.transaction.TransactionStatus;
19

    
20
import eu.etaxonomy.cdm.app.common.CdmDestinations;
21
import eu.etaxonomy.cdm.database.DbSchemaValidation;
22
import eu.etaxonomy.cdm.database.ICdmDataSource;
23
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
24
import eu.etaxonomy.cdm.io.common.IImportConfigurator;
25
import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;
26
import eu.etaxonomy.cdm.io.taxonx.TaxonXImportConfigurator;
27

    
28
/**
29
 * @author a.mueller
30
 * @created 20.06.2008
31
 * @version 1.0
32
 */
33
public class PalmaeTaxonXImportActivator {
34
	private static final Logger logger = Logger.getLogger(PalmaeTaxonXImportActivator.class);
35
	
36
	//database validation status (create, update, validate ...)
37
	static DbSchemaValidation hbm2dll = DbSchemaValidation.UPDATE;
38
	//static final String tcsSource = TcsSources.taxonX_local();
39
	//static File source  = TcsSources.taxonX_localDir();
40
	static File source  = new File("target/classes/taxonX");
41
	static ICdmDataSource cdmDestination = CdmDestinations.localH2Palmae();
42
	
43
	static UUID secUuid = UUID.fromString("5f32b8af-0c97-48ac-8d33-6099ed68c625");
44
	
45
	//check - import
46
	static CHECK check = CHECK.IMPORT_WITHOUT_CHECK;
47
	
48
	static boolean doDescriptions = true;
49
	static boolean doNomenclature = true;
50
	static boolean doMods = true;
51
	
52
	
53
	public boolean runImport(){
54
		boolean success = true;
55
		//make destination
56
		ICdmDataSource destination = cdmDestination;
57
		
58
		TaxonXImportConfigurator taxonXImportConfigurator = TaxonXImportConfigurator.NewInstance("", destination);
59
		// invoke import
60
		CdmDefaultImport<IImportConfigurator> cdmImport = new CdmDefaultImport<IImportConfigurator>();
61
		
62
		taxonXImportConfigurator.setSecUuid(secUuid);
63
		
64
		taxonXImportConfigurator.setDoFacts(doDescriptions);
65
		taxonXImportConfigurator.setDoTypes(doNomenclature);
66
		taxonXImportConfigurator.setDoMods(doMods);
67
		
68
		taxonXImportConfigurator.setCheck(check);
69
		taxonXImportConfigurator.setDbSchemaValidation(hbm2dll);
70

    
71
		cdmImport.startController(taxonXImportConfigurator, destination);
72
				
73
		//new Test().invoke(tcsImportConfigurator);
74
		if (source.isDirectory()){
75
			makeDirectory(cdmImport, taxonXImportConfigurator, source);
76
		}else{
77
			success &= importFile(cdmImport, taxonXImportConfigurator, source);
78
		}
79
		return success;
80
	}
81
	
82
	private boolean makeDirectory(CdmDefaultImport<IImportConfigurator> cdmImport, TaxonXImportConfigurator taxonXImportConfigurator, File source){
83
		boolean success = true;
84
		for (File file : source.listFiles() ){
85
			if (file.isFile()){
86
				success &= importFile(cdmImport, taxonXImportConfigurator, file);
87
			}else{
88
				if (! file.getName().startsWith(".")){
89
					makeDirectory(cdmImport, taxonXImportConfigurator, file);
90
				}
91
			}
92
		}
93
		return success;
94
	}
95
	
96
	private boolean importFile(CdmDefaultImport<IImportConfigurator> cdmImport, 
97
				TaxonXImportConfigurator config, File file){
98
		boolean success = true;
99
		try{
100
			URL url = file.toURI().toURL();
101
			config.setSource(url.toString());
102
			String originalSourceId = file.getName();
103
			originalSourceId =originalSourceId.replace(".xml", "");
104
			config.setOriginalSourceId(originalSourceId);
105
			TransactionStatus tx = cdmImport.getCdmAppController().startTransaction();
106
			success &= cdmImport.invoke(config);
107
			cdmImport.getCdmAppController().commitTransaction(tx);		
108
			return success;			
109
		} catch (MalformedURLException e) {
110
			logger.warn(e);
111
			return false;
112
		}
113
	}
114
	
115
	
116
	/**
117
	 * @param args
118
	 */
119
	public static void main(String[] args) {
120
		System.out.println("Start import from Source("+ source.toString() + ") ...");
121
		
122
		PalmaeTaxonXImportActivator importer = new PalmaeTaxonXImportActivator();
123
		
124
		importer.runImport();
125
		
126
		 
127
		System.out.println("End import from Source ("+ source.toString() + ")...");
128
	}
129

    
130
	
131
}
(5-5/5)