Revision 23722

View differences:

branches/v2_0_0_prep/libraries/libFMap_data/src/org/gvsig/fmap/data/index/IndexStore.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22

  
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2008 {{Company}}   {{Task}}
26
*/
27
 
28
package org.gvsig.fmap.data.index;
29

  
30
import java.util.HashMap;
31
import java.util.Iterator;
32
import java.util.Map;
33

  
34
import org.gvsig.fmap.data.feature.FeatureStore;
35
import org.gvsig.fmap.data.feature.FeatureType;
36

  
37
/**
38
 * This class provides access to a FeatureStore local indexes.
39
 * This class holds the correspondence between a pair (FeatureType, columName) -> SpatialIndex
40
 * TODO there is not persistence and works only in memory
41
 * @author jyarza
42
 */
43
public class IndexStore {
44

  
45
	private Map featureTypes = new HashMap(); 
46

  
47
	public IndexStore(FeatureStore store) {
48
		Iterator it = store.getFeatureTypes().iterator();
49
		while (it.hasNext()) {
50
			FeatureType type = (FeatureType) it.next();
51
			featureTypes.put(type, new HashMap());
52
		}
53
	}
54
	
55
	public Index getIndex(FeatureType fType, String colName) {
56
		Map indexes = (Map) featureTypes.get(fType);
57
		if (indexes != null) {
58
			return (Index) (featureTypes.get(fType));
59
		}
60
		return null;
61
	}
62
	
63
	public void addIndex(FeatureType fType, String colName, Index index) {		
64
		Map indexes = (Map) featureTypes.get(fType);		
65
		if (indexes == null) {
66
			// A new feature type has been added to the FeatureStore since this IndexStore was created
67
			indexes = new HashMap();
68
			featureTypes.put(fType, indexes);
69
		}
70
		indexes.put(colName, index);
71
	}
72
	
73
	public boolean contains(FeatureType fType, String colName) {
74
		Map map = (Map) featureTypes.get(fType);
75
		return map == null ? false : map.containsKey(colName);
76
	}
77
}

Also available in: Unified diff