minor
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / app / references / EndNoteImportActivator.java
1 package eu.etaxonomy.cdm.app.references;
2
3 import java.net.URI;
4 import java.net.URISyntaxException;
5
6 import org.apache.log4j.Logger;
7
8 import eu.etaxonomy.cdm.api.application.CdmApplicationController;
9 import eu.etaxonomy.cdm.app.common.CdmDestinations;
10 import eu.etaxonomy.cdm.app.util.TestDatabase;
11 import eu.etaxonomy.cdm.database.DbSchemaValidation;
12 import eu.etaxonomy.cdm.database.ICdmDataSource;
13 import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
14 import eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator;
15
16 public class EndNoteImportActivator {
17 /* SerializeFrom DB **/
18 //private static final ICdmDataSource cdmSource = CdmDestinations.localH2Diptera();
19 private static final ICdmDataSource cdmDestination = CdmDestinations.localH2Diptera();
20
21 // Import:
22 private static String importFileNameString = "file:/C:/EndNoteTest.xml";
23
24
25
26
27 private static final Logger logger = Logger.getLogger(EndNoteImportActivator.class);
28
29
30 public static String chooseFile(String[] args) {
31 if(args == null)
32 return null;
33 for (String dest: args){
34 if (dest.endsWith(".xml")){
35 return args[0];
36 }
37 }
38 return null;
39 }
40
41 private void invokeImport(String importFileParamString, ICdmDataSource destination) {
42 URI importFileName;
43 try {
44 importFileName = new URI(importFileNameString);
45 EndnoteImportConfigurator endNoteImportConfigurator;
46 if (importFileParamString !=null && destination != null){
47 URI importFileParam = new URI(importFileParamString);
48 endNoteImportConfigurator = EndnoteImportConfigurator.NewInstance(importFileParam, destination);
49 }else if (destination != null){
50 endNoteImportConfigurator = EndnoteImportConfigurator.NewInstance(importFileName, destination);
51 } else if (importFileParamString !=null ){
52 URI importFileParam = new URI(importFileParamString);
53 endNoteImportConfigurator = EndnoteImportConfigurator.NewInstance(importFileParam, cdmDestination);
54 } else{
55 endNoteImportConfigurator = EndnoteImportConfigurator.NewInstance(importFileName, cdmDestination);
56 }
57
58 CdmDefaultImport<EndnoteImportConfigurator> endNoteImport =
59 new CdmDefaultImport<EndnoteImportConfigurator>();
60
61
62 // invoke import
63 logger.debug("Invoking Jaxb import");
64
65 endNoteImport.invoke(endNoteImportConfigurator, destination, true);
66 } catch (URISyntaxException e) {
67 e.printStackTrace();
68 return;
69 }
70
71
72 }
73
74
75 private CdmApplicationController initDb(ICdmDataSource db) {
76
77 // Init source DB
78 CdmApplicationController appCtrInit = null;
79
80 appCtrInit = TestDatabase.initDb(db, DbSchemaValidation.VALIDATE, true);
81
82 return appCtrInit;
83 }
84
85
86 // Load test data to DB
87 private void loadTestData(CdmApplicationController appCtrInit) {
88
89 TestDatabase.loadTestData("", appCtrInit);
90 }
91
92
93 /**
94 * @param args
95 */
96 public static void main(String[] args) {
97
98 EndNoteImportActivator sc = new EndNoteImportActivator();
99 ICdmDataSource destination = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;
100 String file = chooseFile(args)!= null ? chooseFile(args) : importFileNameString;
101 CdmApplicationController appCtr = null;
102 appCtr = sc.initDb(destination);
103 //sc.loadTestData(appCtr);
104
105 sc.invokeImport(file, destination);
106 }
107
108 }