1
2
3
4
5
6
7
8
9
10
11 package eu.etaxonomy.cdm.io.common;
12
13 import java.util.HashMap;
14 import java.util.Map;
15 import java.util.UUID;
16
17 import org.apache.log4j.Logger;
18
19 import eu.etaxonomy.cdm.api.service.IService;
20 import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;
21 import eu.etaxonomy.cdm.model.agent.Person;
22 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
23 import eu.etaxonomy.cdm.model.common.AnnotationType;
24 import eu.etaxonomy.cdm.model.common.CdmBase;
25 import eu.etaxonomy.cdm.model.common.ExtensionType;
26 import eu.etaxonomy.cdm.model.common.Language;
27 import eu.etaxonomy.cdm.model.common.MarkerType;
28 import eu.etaxonomy.cdm.model.common.User;
29 import eu.etaxonomy.cdm.model.description.Feature;
30 import eu.etaxonomy.cdm.model.location.NamedArea;
31 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
32 import eu.etaxonomy.cdm.model.occurrence.Specimen;
33 import eu.etaxonomy.cdm.model.reference.ReferenceBase;
34 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
35 import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
36
37
38
39
40
41
42 public abstract class ImportStateBase<CONFIG extends ImportConfiguratorBase, IO extends CdmImportBase> extends IoStateBase<CONFIG, IO> {
43 @SuppressWarnings("unused")
44 private static final Logger logger = Logger.getLogger(ImportStateBase.class);
45
46 private Map<Object,TaxonomicTree> treeMap = new HashMap<Object,TaxonomicTree>();
47
48 private Map<ReferenceBase,UUID> treeUuidMap = new HashMap<ReferenceBase,UUID>();
49
50 private Map<String,UUID> taxonomicTreeKeyUuidMap = new HashMap<String,UUID>();
51
52 private IInputTransformer inputTransformer;
53
54
55 private Map<UUID, ExtensionType> extensionTypeMap = new HashMap<UUID, ExtensionType>();
56 private Map<UUID, MarkerType> markerTypeMap = new HashMap<UUID, MarkerType>();
57 private Map<UUID, AnnotationType> annotationTypeMap = new HashMap<UUID, AnnotationType>();
58
59 private Map<UUID, NamedArea> namedAreaMap = new HashMap<UUID, NamedArea>();
60 private Map<UUID, Feature> featureMap = new HashMap<UUID, Feature>();
61 private Map<UUID, Language> languageMap = new HashMap<UUID, Language>();
62
63
64
65 protected ImportStateBase(CONFIG config){
66 this.config = config;
67 stores.put(ICdmIO.USER_STORE, new MapWrapper<User>(service));
68 stores.put(ICdmIO.PERSON_STORE, new MapWrapper<Person>(service));
69 stores.put(ICdmIO.TEAM_STORE, new MapWrapper<TeamOrPersonBase<?>>(service));
70 stores.put(ICdmIO.REFERENCE_STORE, new MapWrapper<ReferenceBase>(service));
71 stores.put(ICdmIO.NOMREF_STORE, new MapWrapper<ReferenceBase>(service));
72 stores.put(ICdmIO.NOMREF_DETAIL_STORE, new MapWrapper<ReferenceBase>(service));
73 stores.put(ICdmIO.REF_DETAIL_STORE, new MapWrapper<ReferenceBase>(service));
74 stores.put(ICdmIO.TAXONNAME_STORE, new MapWrapper<TaxonNameBase<?,?>>(service));
75 stores.put(ICdmIO.TAXON_STORE, new MapWrapper<TaxonBase>(service));
76 stores.put(ICdmIO.SPECIMEN_STORE, new MapWrapper<Specimen>(service));
77 }
78
79
80 protected Map<String, MapWrapper<? extends CdmBase>> stores = new HashMap<String, MapWrapper<? extends CdmBase>>();
81
82 protected IService<CdmBase> service = null;
83
84
85
86
87 public Map<String, MapWrapper<? extends CdmBase>> getStores() {
88 return stores;
89 }
90
91
92
93
94 public void setStores(Map<String, MapWrapper<? extends CdmBase>> stores) {
95 this.stores = stores;
96 }
97
98
99 public MapWrapper<? extends CdmBase> getStore(String storeLabel){
100 return (MapWrapper<? extends CdmBase>) stores.get(storeLabel);
101 }
102
103
104
105
106
107 public TaxonomicTree getTree(Object ref) {
108 return treeMap.get(ref);
109 }
110
111
112
113
114 public void putTree(Object ref, TaxonomicTree tree) {
115 if (tree != null){
116 this.treeMap.put(ref, tree);
117 }
118 }
119
120 public int countTrees(){
121 return treeUuidMap.size();
122 }
123
124
125
126
127 public UUID getTreeUuid(ReferenceBase ref) {
128 return treeUuidMap.get(ref);
129 }
130
131 public void putTreeUuid(ReferenceBase ref, TaxonomicTree tree) {
132 if (tree != null && tree.getUuid() != null){
133 this.treeUuidMap.put(ref, tree.getUuid());
134 }
135 }
136
137 public int countTreeUuids(){
138 return treeUuidMap.size();
139 }
140
141
142
143
144
145
146
147
148
149
150 public void putTaxonomicTreeUuidInt(int treeKeyId, TaxonomicTree tree) {
151 putTaxonomicTreeUuid(String.valueOf(treeKeyId), tree);
152 }
153
154 public void putTaxonomicTreeUuid(String treeKey, TaxonomicTree tree) {
155 if (tree != null && tree.getUuid() != null){
156 this.taxonomicTreeKeyUuidMap.put(treeKey, tree.getUuid());
157 }
158 }
159
160 public UUID getTreeUuidByIntTreeKey(int treeKey) {
161 return taxonomicTreeKeyUuidMap.get(String.valueOf(treeKey));
162 }
163
164 public UUID getTreeUuidByTreeKey(String treeKey) {
165 return taxonomicTreeKeyUuidMap.get(treeKey);
166 }
167
168
169 public ExtensionType getExtensionType(UUID uuid){
170 return extensionTypeMap.get(uuid);
171 }
172
173 public void putExtensionType(ExtensionType extensionType){
174 extensionTypeMap.put(extensionType.getUuid(), extensionType);
175 }
176
177 public MarkerType getMarkerType(UUID uuid){
178 return markerTypeMap.get(uuid);
179 }
180
181 public void putMarkerType(MarkerType markerType){
182 markerTypeMap.put(markerType.getUuid(), markerType);
183 }
184
185 public AnnotationType getAnnotationType(UUID uuid){
186 return annotationTypeMap.get(uuid);
187 }
188
189 public void putAnnotationType(AnnotationType annotationType){
190 annotationTypeMap.put(annotationType.getUuid(), annotationType);
191 }
192
193 public NamedArea getNamedArea(UUID uuid){
194 return namedAreaMap.get(uuid);
195 }
196
197 public void putNamedArea(NamedArea namedArea){
198 namedAreaMap.put(namedArea.getUuid(), namedArea);
199 }
200
201
202 public Feature getFeature(UUID uuid){
203 return featureMap.get(uuid);
204 }
205
206 public void putFeature(Feature feature){
207 featureMap.put(feature.getUuid(), feature);
208 }
209
210 public Language getLanguage(UUID uuid){
211 return languageMap.get(uuid);
212 }
213
214 public void putLanguage(Language language){
215 languageMap.put(language.getUuid(), language);
216 }
217
218
219
220 public IInputTransformer getTransformer(){
221 return inputTransformer;
222 }
223
224 public void setTransformer(IInputTransformer transformer){
225 this.inputTransformer = transformer;
226 }
227
228
229
230 }