2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.io
.common
;
12 import java
.lang
.reflect
.InvocationTargetException
;
13 import java
.lang
.reflect
.Method
;
14 import java
.util
.ArrayList
;
15 import java
.util
.List
;
16 import java
.util
.UUID
;
18 import org
.apache
.log4j
.Logger
;
20 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
21 import eu
.etaxonomy
.cdm
.io
.abcd206
.AbcdIO
;
22 import eu
.etaxonomy
.cdm
.io
.abcd206
.SpecimenImportConfigurator
;
23 import eu
.etaxonomy
.cdm
.io
.tcsxml
.TcsXmlImportConfigurator
;
30 public class ImportWrapper
{
31 private static final Logger logger
= Logger
.getLogger(ImportWrapper
.class);
35 private Class importClass
= CdmDefaultImport
.class;
37 private IImportConfigurator configuration
;
39 public static List
<ImportWrapper
> list(){
40 logger
.debug("Create ImportWrapper list");
41 List
<ImportWrapper
> result
= new ArrayList
<ImportWrapper
>();
43 ImportWrapper wrapper
= Abcd206WrapperInstance();
45 wrapper
= TcsXml101WrapperInstance();
51 public static ImportWrapper
Abcd206WrapperInstance(){
52 String label
= "ABCD 2.06";
53 Class clazz
= CdmDefaultImport
.class;
54 IImportConfigurator config
= SpecimenImportConfigurator
.NewInstance(null, null);
55 ImportWrapper wrapper
= new ImportWrapper();
56 wrapper
.setLabel(label
);
57 wrapper
.setImportClass(clazz
);
58 wrapper
.setConfiguration(config
);
63 public static ImportWrapper
TcsXml101WrapperInstance(){
64 String label
= "TcsXML 1.1";
65 Class clazz
= CdmDefaultImport
.class;
66 IImportConfigurator config
= TcsXmlImportConfigurator
.NewInstance(null, null);
67 ImportWrapper wrapper
= new ImportWrapper();
68 wrapper
.setLabel(label
);
69 wrapper
.setImportClass(clazz
);
70 wrapper
.setConfiguration(config
);
75 // public static ImportWrapper JaxbWrapperInstance(){
76 // String label = "CDM 1.0 XML";
77 // Class clazz = CdmDefaultImport.class;
78 // IImportConfigurator config = TcsXmlImportConfigurator.NewInstance(null, null);
79 // ImportWrapper wrapper = new ImportWrapper();
80 // wrapper.setLabel(label);
81 // wrapper.setImportClass(clazz);
82 // wrapper.setConfiguration(config);
93 public boolean invoke(Object source
, ICdmDataSource destination
, UUID secUUID
){
95 Method methodInvoke
= importClass
.getDeclaredMethod("invoke", IImportConfigurator
.class);
96 Method methodSetSource
= configuration
.getClass().getDeclaredMethod("setSource", Object
.class);
97 methodSetSource
.setAccessible(true);
99 this.configuration
.setDestination(destination
);
100 methodSetSource
.invoke(configuration
, source
);
102 if (this.importClass
== null){
105 return (Boolean
)methodInvoke
.invoke(importClass
, configuration
);
107 } catch (SecurityException e
) {
109 } catch (IllegalArgumentException e
) {
111 } catch (NoSuchMethodException e
) {
113 } catch (IllegalAccessException e
) {
115 } catch (InvocationTargetException e
) {
121 // *************** GETTER / SETTER *******************************************/
124 * @return the configuration
126 public IImportConfigurator
getConfiguration() {
127 return configuration
;
131 * @param configuration the configuration to set
133 public void setConfiguration(IImportConfigurator configuration
) {
134 this.configuration
= configuration
;
140 public String
getLabel() {
145 * @param label the label to set
147 public void setLabel(String label
) {
152 * @return the ioClazz
154 public Class
getImportClass() {
159 * @param ioClazz the ioClazz to set
161 public void setImportClass(Class importClass
) {
162 this.importClass
= importClass
;