Statistics
| Revision:

root / branches / v2_0_0_prep / libraries / libFMap_data / src / org / gvsig / fmap / data / index / IndexStore.java @ 23204

History | View | Annotate | Download (2.34 KB)

1 22609 jiyarza
/* 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 23023 jiyarza
 *
41 22609 jiyarza
 * @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 SpatialIndex getSpatialIndex(FeatureType fType, String colName) {
56
                Map indexes = (Map) featureTypes.get(fType);
57
                if (indexes != null) {
58
                        return (SpatialIndex) (featureTypes.get(fType));
59
                }
60
                return null;
61
        }
62
63
        public void addIndex(FeatureType fType, String colName, SpatialIndex 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
}