Statistics
| Revision:

root / branches / v2_0_0_prep / extensions / extGPE-gvSIG / src / org / gvsig / fmap / dal / store / gpe / GPESetProvider.java @ 27830

History | View | Annotate | Download (5.05 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
 * 2009 {Iver T.I.}   {Task}
26
 */
27

    
28
package org.gvsig.fmap.dal.store.gpe;
29

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

    
33
import org.gvsig.fmap.dal.exception.DataException;
34
import org.gvsig.fmap.dal.feature.DisposableIterator;
35
import org.gvsig.fmap.dal.feature.Feature;
36
import org.gvsig.fmap.dal.feature.FeatureQuery;
37
import org.gvsig.fmap.dal.feature.FeatureType;
38
import org.gvsig.fmap.dal.feature.impl.DefaultFeature;
39
import org.gvsig.fmap.dal.feature.spi.FeatureSetProvider;
40
import org.gvsig.fmap.dal.store.gpe.handlers.FmapContentHandler;
41

    
42
/**
43
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
44
 */
45
public class GPESetProvider implements FeatureSetProvider {
46
        private GPEStoreProvider store;
47
        private FeatureQuery query;
48
        private FeatureType featureType;
49

    
50
        public GPESetProvider(GPEStoreProvider store,
51
                        FeatureQuery query) {
52
                this.store = store;
53
                this.query = query;                
54
        }
55

    
56
        public GPESetProvider(GPEStoreProvider store,
57
                        FeatureQuery query, FeatureType featureType) {
58
                this.store = store;
59
                this.query = query;
60
                this.featureType = featureType;
61
        }
62

    
63
        /* (non-Javadoc)
64
         * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#canFilter()
65
         */
66
        public boolean canFilter() {
67
                // TODO Auto-generated method stub
68
                return false;
69
        }
70

    
71
        /* (non-Javadoc)
72
         * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#canIterateFromIndex()
73
         */
74
        public boolean canIterateFromIndex() {
75
                // TODO Auto-generated method stub
76
                return false;
77
        }
78

    
79
        /* (non-Javadoc)
80
         * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#canOrder()
81
         */
82
        public boolean canOrder() {
83
                // TODO Auto-generated method stub
84
                return false;
85
        }
86

    
87
        /* (non-Javadoc)
88
         * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#fastIterator(long)
89
         */
90
        public DisposableIterator fastIterator(long index) throws DataException {
91
                return new GPEFastIterator(this.store, this.featureType);
92
        }
93

    
94
        /* (non-Javadoc)
95
         * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#fastIterator()
96
         */
97
        public DisposableIterator fastIterator() throws DataException {
98
                return fastIterator(0);
99
        }
100

    
101
        /* (non-Javadoc)
102
         * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#getSize()
103
         */
104
        public long getSize() throws DataException {
105
                return store.getFeatureCount();
106
        }
107

    
108
        /* (non-Javadoc)
109
         * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#isEmpty()
110
         */
111
        public boolean isEmpty() throws DataException {
112
                // TODO Auto-generated method stub
113
                return false;
114
        }
115

    
116
        /*
117
         * (non-Javadoc)
118
         * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#iterator()
119
         */
120
        public DisposableIterator iterator() throws DataException {
121
                return this.iterator(0);
122
        }
123

    
124
        /*
125
         * (non-Javadoc)
126
         * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#iterator(long)
127
         */
128
        public DisposableIterator iterator(long index) throws DataException {
129
                return new GPEIterator(this.store, this.featureType);
130
        }
131

    
132
        protected class GPEIterator implements DisposableIterator {
133
                protected GPEStoreProvider store;
134
                protected FeatureType type;
135
                Iterator keys = null;
136
                HashMap features = null;
137

    
138
                public GPEIterator(GPEStoreProvider store, FeatureType type) throws DataException {
139
                        this.store = store;
140
                        this.type = type;                        
141
                        features = ((FmapContentHandler)store.getParser().getContentHandler())
142
                                        .getFeatureSet();
143
                        keys = features.keySet().iterator();
144
                }
145

    
146
                /*
147
                 * (non-Javadoc)
148
                 * @see java.util.Iterator#hasNext()
149
                 */
150
                public boolean hasNext() {
151
                        return keys.hasNext();
152
                }
153

    
154
                /*
155
                 * (non-Javadoc)
156
                 * @see java.util.Iterator#next()
157
                 */
158
                public Object next() {
159
                        return ((DefaultFeature)features.get(keys.next())).getData();                        
160
                }
161

    
162
                /*
163
                 * (non-Javadoc)
164
                 * @see java.util.Iterator#remove()
165
                 */
166
                public void remove() {
167
                        throw new UnsupportedOperationException();
168
                }
169

    
170
                /* (non-Javadoc)
171
                 * @see org.gvsig.fmap.dal.feature.DisposableIterator#dispose()
172
                 */
173
                public void dispose() {
174
                        
175
                }
176
        }
177
        
178
        protected class GPEFastIterator extends GPEIterator {
179

    
180
                public GPEFastIterator(GPEStoreProvider store, FeatureType type) throws DataException {
181
                        super(store, type);
182
                }
183
        }
184

    
185
        /* (non-Javadoc)
186
         * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#dispose()
187
         */
188
        public void dispose() {
189
                // TODO Auto-generated method stub
190
                
191
        }
192
}
193