Project

General

Profile

Download (5.7 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
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.model.agent.Person;
21
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
22
import eu.etaxonomy.cdm.model.common.CdmBase;
23
import eu.etaxonomy.cdm.model.common.ExtensionType;
24
import eu.etaxonomy.cdm.model.common.MarkerType;
25
import eu.etaxonomy.cdm.model.common.User;
26
import eu.etaxonomy.cdm.model.description.Feature;
27
import eu.etaxonomy.cdm.model.location.NamedArea;
28
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
29
import eu.etaxonomy.cdm.model.occurrence.Specimen;
30
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
31
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
32
import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
33

    
34
/**
35
 * @author a.mueller
36
 * @created 11.05.2009
37
 * @version 1.0
38
 */
39
public abstract class ImportStateBase<CONFIG extends ImportConfiguratorBase, IO extends CdmImportBase> extends IoStateBase<CONFIG, IO> {
40
	@SuppressWarnings("unused")
41
	private static final Logger logger = Logger.getLogger(ImportStateBase.class);
42
	
43
	private Map<Object,TaxonomicTree> treeMap = new HashMap<Object,TaxonomicTree>();
44

    
45
	private Map<ReferenceBase,UUID> treeUuidMap = new HashMap<ReferenceBase,UUID>();
46

    
47
	private Map<String,UUID> taxonomicTreeKeyUuidMap = new HashMap<String,UUID>();
48
	
49
	private Map<UUID, ExtensionType> extensionTypeMap = new HashMap<UUID, ExtensionType>();
50
	private Map<UUID, MarkerType> markerTypeMap = new HashMap<UUID, MarkerType>();
51
	private Map<UUID, NamedArea> namedAreaMap = new HashMap<UUID, NamedArea>();
52
	private Map<UUID, Feature> featureMap = new HashMap<UUID, Feature>();
53
	
54

    
55
	
56
	protected ImportStateBase(CONFIG config){
57
		this.config = config;
58
		stores.put(ICdmIO.USER_STORE, new MapWrapper<User>(service));
59
		stores.put(ICdmIO.PERSON_STORE, new MapWrapper<Person>(service));
60
		stores.put(ICdmIO.TEAM_STORE, new MapWrapper<TeamOrPersonBase<?>>(service));
61
		stores.put(ICdmIO.REFERENCE_STORE, new MapWrapper<ReferenceBase>(service));
62
		stores.put(ICdmIO.NOMREF_STORE, new MapWrapper<ReferenceBase>(service));
63
		stores.put(ICdmIO.NOMREF_DETAIL_STORE, new MapWrapper<ReferenceBase>(service));
64
		stores.put(ICdmIO.REF_DETAIL_STORE, new MapWrapper<ReferenceBase>(service));
65
		stores.put(ICdmIO.TAXONNAME_STORE, new MapWrapper<TaxonNameBase<?,?>>(service));
66
		stores.put(ICdmIO.TAXON_STORE, new MapWrapper<TaxonBase>(service));
67
		stores.put(ICdmIO.SPECIMEN_STORE, new MapWrapper<Specimen>(service));
68
	}
69
	
70
	//different type of stores that are used by the known imports
71
	protected Map<String, MapWrapper<? extends CdmBase>> stores = new HashMap<String, MapWrapper<? extends CdmBase>>();
72
	
73
	protected IService<CdmBase> service = null;
74

    
75
	/**
76
	 * @return the stores
77
	 */
78
	public Map<String, MapWrapper<? extends CdmBase>> getStores() {
79
		return stores;
80
	}
81

    
82
	/**
83
	 * @param stores the stores to set
84
	 */
85
	public void setStores(Map<String, MapWrapper<? extends CdmBase>> stores) {
86
		this.stores = stores;
87
	}
88

    
89

    
90
 	public MapWrapper<? extends CdmBase> getStore(String storeLabel){
91
 		return (MapWrapper<? extends CdmBase>) stores.get(storeLabel);
92
 	}
93
	
94

    
95
	/**
96
	 * @return the treeMap
97
	 */
98
	public TaxonomicTree getTree(Object ref) {
99
		return treeMap.get(ref);
100
	}
101

    
102
	/**
103
	 * @param treeMap the treeMap to set
104
	 */
105
	public void putTree(Object ref, TaxonomicTree tree) {
106
		if (tree != null){
107
			this.treeMap.put(ref, tree);
108
		}
109
	}
110
	
111
	public int countTrees(){
112
		return treeUuidMap.size();
113
	}
114
	
115
	/**
116
	 * @return the treeUuid
117
	 */
118
	public UUID getTreeUuid(ReferenceBase ref) {
119
		return treeUuidMap.get(ref);
120
	}
121

    
122
	public void putTreeUuid(ReferenceBase ref, TaxonomicTree tree) {
123
		if (tree != null &&  tree.getUuid() != null){
124
			this.treeUuidMap.put(ref, tree.getUuid());
125
		}
126
	}
127

    
128
	public int countTreeUuids(){
129
		return treeUuidMap.size();
130
	}
131

    
132
	
133
	
134
	
135
	/**
136
	 * Adds a taxonomic tree uuid to the taxonomic tree uuid map,
137
	 * which maps a key for the taxonomic tree to its UUID in the CDM
138
	 * @param treeKeyId
139
	 * @param tree
140
	 */
141
	public void putTaxonomicTreeUuidInt(int treeKeyId, TaxonomicTree tree) {
142
		putTaxonomicTreeUuid(String.valueOf(treeKeyId), tree);
143
	}
144

    
145
	public void putTaxonomicTreeUuid(String treeKey, TaxonomicTree tree) {
146
		if (tree != null &&  tree.getUuid() != null){
147
			this.taxonomicTreeKeyUuidMap.put(treeKey, tree.getUuid());
148
		}
149
	}
150
	
151
	public UUID getTreeUuidByIntTreeKey(int treeKey) {
152
		return taxonomicTreeKeyUuidMap.get(String.valueOf(treeKey));
153
	}
154
	
155
	public UUID getTreeUuidByTreeKey(String treeKey) {
156
		return taxonomicTreeKeyUuidMap.get(treeKey);
157
	}
158
	
159
	
160
	public ExtensionType getExtensionType(UUID uuid){
161
		return extensionTypeMap.get(uuid);
162
	}
163
	
164
	public void putExtensionType(ExtensionType extensionType){
165
		extensionTypeMap.put(extensionType.getUuid(), extensionType);
166
	}
167

    
168
	public MarkerType getMarkerType(UUID uuid){
169
		return markerTypeMap.get(uuid);
170
	}
171
	
172
	public void putMarkerType(MarkerType markerType){
173
		markerTypeMap.put(markerType.getUuid(), markerType);
174
	}
175
	
176
	public NamedArea getNamedArea(UUID uuid){
177
		return namedAreaMap.get(uuid);
178
	}
179
	
180
	public void putNamedArea(NamedArea namedArea){
181
		namedAreaMap.put(namedArea.getUuid(), namedArea);
182
	}
183

    
184
	
185
	public Feature getFeature(UUID uuid){
186
		return featureMap.get(uuid);
187
	}
188
	
189
	public void putFeature(Feature feature){
190
		featureMap.put(feature.getUuid(), feature);
191
	}
192
	
193

    
194
	
195
}
(30-30/42)