Merge branch 'release/4.3.0'
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / specimen / abcd206 / in / Abcd206ImportConfigurator.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.io.specimen.abcd206.in;
11
12
13 import java.net.URI;
14
15 import org.apache.log4j.Logger;
16
17 import eu.etaxonomy.cdm.common.UriUtils;
18 import eu.etaxonomy.cdm.database.ICdmDataSource;
19 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
20 import eu.etaxonomy.cdm.io.common.IMatchingImportConfigurator;
21 import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;
22 import eu.etaxonomy.cdm.io.specimen.SpecimenImportConfiguratorBase;
23 import eu.etaxonomy.cdm.model.reference.Reference;
24
25 /**
26 * @author p.kelbert
27 * @created 20.10.2008
28 * @version 1.0
29 * @param <SOURCE>
30 */
31 public class Abcd206ImportConfigurator<AbcdImportState, InputStream> extends SpecimenImportConfiguratorBase implements IImportConfigurator, IMatchingImportConfigurator {
32 private static final Logger logger = Logger.getLogger(Abcd206ImportConfigurator.class);
33
34
35
36
37 //TODO
38 private static IInputTransformer defaultTransformer = null;
39
40 private URI sourceUri;
41
42
43
44 @Override
45 @SuppressWarnings("unchecked")
46 protected void makeIoClassList(){
47 System.out.println("makeIOClassList");
48 ioClassList = new Class[]{
49 Abcd206Import.class,
50 };
51 }
52
53 public static Abcd206ImportConfigurator NewInstance(URI uri,ICdmDataSource destination){
54 return new Abcd206ImportConfigurator(null, uri, destination, false);
55 }
56
57 /**
58 * @param uri
59 * @param object
60 * @param b
61 * @return
62 */
63 public static Abcd206ImportConfigurator NewInstance(URI uri, ICdmDataSource destination, boolean interact) {
64 return new Abcd206ImportConfigurator(null, uri, destination, interact);
65 }
66
67 /**
68 * @param uri
69 * @param object
70 * @param b
71 * @return
72 *//*
73 public static Abcd206ImportConfigurator NewInstance(InputStream stream, ICdmDataSource destination, boolean interact) {
74 return new Abcd206ImportConfigurator(stream, null, destination, interact);
75 }
76 */
77
78
79 /**
80 * @param berlinModelSource
81 * @param sourceReference
82 * @param destination
83 */
84 private Abcd206ImportConfigurator(InputStream stream, URI uri, ICdmDataSource destination, boolean interact) {
85 super(defaultTransformer);
86 if (stream != null){
87 setSource(stream);
88 }else{
89 this.sourceUri = uri;
90 }
91 setDestination(destination);
92 setSourceReferenceTitle("ABCD classic");
93 setInteractWithUser(interact);
94 }
95
96
97
98
99
100 @Override
101 public Abcd206ImportState getNewState() {
102 return new Abcd206ImportState(this);
103 }
104
105
106 @Override
107 public InputStream getSource(){
108 if (super.getSource() != null){
109 return (InputStream)super.getSource();
110 }else if (this.sourceUri != null){
111 try {
112 InputStream is = (InputStream) UriUtils.getInputStream(sourceUri);
113 setSource(is);
114 return is;
115 } catch (Exception e) {
116 throw new RuntimeException(e);
117 }
118 }else{
119 return null;
120 }
121 }
122
123
124
125 public URI getSourceUri(){
126 return this.sourceUri;
127 }
128
129 public void setSourceUri(URI sourceUri) {
130 this.sourceUri = sourceUri;
131 super.setSource(null);
132 }
133
134
135
136
137 @Override
138 public Reference getSourceReference() {
139 //TODO
140 return sourceReference;
141 }
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159 }