Statistics
| Revision:

root / branches / v2_0_0_prep / libraries / libFMap_dal / src / org / gvsig / fmap / dal / feature / FeatureIndex.java @ 24496

History | View | Annotate | Download (2.67 KB)

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

    
29
package org.gvsig.fmap.dal.feature;
30

    
31
import java.util.List;
32

    
33
import org.gvsig.fmap.dal.exceptions.DataException;
34
import org.gvsig.fmap.dal.feature.exceptions.FeatureIndexException;
35
import org.gvsig.fmap.dal.feature.spi.FeatureSetProvider;
36

    
37
/**
38
 * Interface for any Index. 
39
 * @author jyarza
40
 *
41
 */
42
public interface FeatureIndex {
43
        
44
        /** Index name */
45
        public String getName();
46
        
47
        /** Attribute names */
48
        public List getAttributeNames();
49
        
50
        /** Data type */
51
        public int getDataType();
52
        
53
        /**
54
         * Inserts a Feature in the index.
55
         * The Feature must contain a column that matches this index's column (name and data type)
56
         * @param feat
57
         */
58
        public void insert(Feature feat);
59

    
60
        /**
61
         * Inserts a FeatureSet into this index
62
         * FeatureType is not checked so it will accept any FeatureType
63
         * as long as exists a column with a valid name
64
         */        
65
        public void insert(FeatureSet data) throws DataException;
66
        
67
        /**
68
         * Deletes a Feature in the index.
69
         * The Feature must contain a column that matches this index's column (name and data type)
70
         * @param feat
71
         */
72
        public void delete(Feature feat);
73

    
74
        /**
75
         * Deletes a FeatureSet from this index
76
         * FeatureType is not checked so it will accept any FeatureType
77
         * as long as exists a column with a valid name
78
         */        
79
        public void delete(FeatureSet data) throws FeatureIndexException;        
80
        
81
        public FeatureSetProvider getMatchFeatureSet(Object value)
82
                        throws FeatureIndexException;
83

    
84
        public FeatureSetProvider getRangeFeatureSet(Object value1, Object value2)
85
                        throws FeatureIndexException;
86

    
87
        public FeatureSetProvider getNearestFeatureSet(int count, Object value)
88
                        throws FeatureIndexException;
89

    
90
        public FeatureSetProvider getNearestFeatureSet(int count, Object value, 
91
                        double tolerance) throws FeatureIndexException;
92

    
93
        
94
}