Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.spi / src / main / java / org / gvsig / fmap / dal / feature / spi / memory / MemoryFeatureProviderAttributeMapper.java @ 44441

History | View | Annotate | Download (6.47 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
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 3
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24

    
25
package org.gvsig.fmap.dal.feature.spi.memory;
26

    
27
import java.util.Iterator;
28
import org.apache.commons.lang3.StringUtils;
29

    
30
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
31
import org.gvsig.fmap.dal.feature.FeatureType;
32
import org.gvsig.fmap.dal.feature.spi.DefaultFeatureProvider;
33
import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
34
import org.gvsig.fmap.geom.Geometry;
35
import org.gvsig.fmap.geom.primitive.Envelope;
36
import org.gvsig.timesupport.Time;
37

    
38
/**
39
 * Envuelve un FeatureProvider en memoria para que muestre un FeautureType
40
 * distinto del orginal sin modificarlo
41
 *
42
 *
43
 * Wrap a FeatureProvider stored in memory to display a FeautureType other than
44
 * the original one without change it
45
 *
46
 * @author jmvivo
47
 *
48
 */
49
public class MemoryFeatureProviderAttributeMapper implements FeatureProvider {
50
        private final FeatureProvider original;
51
        private final FeatureType myFeatureType;
52

    
53
        /**
54
         * Default constructor.
55
         * 
56
         * @param original
57
         *            featureProvider
58
         * @param featureType
59
         *            to expose
60
         */
61
        public MemoryFeatureProviderAttributeMapper(FeatureProvider original,
62
                        FeatureType featureType) {
63
                this.original = original;
64
                this.myFeatureType = featureType;
65

    
66
        }
67

    
68
        public boolean isReadOnly(int i) {
69
            FeatureAttributeDescriptor attribute = myFeatureType.getAttributeDescriptor(i);
70
            if (attribute.getEvaluator() == null) {
71
                    return true;
72
            }
73
            return false;
74
        }
75
        
76
        /*
77
         * (non-Javadoc)
78
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#get(int)
79
         */
80
        public Object get(int i) {
81
                return original.get(myFeatureType.getAttributeDescriptor(i).getName());
82
        }
83

    
84
        /*
85
         * (non-Javadoc)
86
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#get(java.lang.String)
87
         */
88
        public Object get(String name) {
89
                return original.get(name);
90
        }
91

    
92
        /*
93
         * (non-Javadoc)
94
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#getCopy()
95
         */
96
        public FeatureProvider getCopy() {
97
                DefaultFeatureProvider data = new DefaultFeatureProvider(myFeatureType);
98
                data.setOID(this.original.getOID());
99
                Iterator iter = myFeatureType.iterator();
100
                FeatureAttributeDescriptor attr;
101
                while (iter.hasNext()) {
102
                        attr = (FeatureAttributeDescriptor) iter.next();
103
                        if (!attr.isComputed()) {
104
                            data.set(attr.getIndex(), this.original.get(attr.getName()));
105
                        }
106
                }
107
                data.setNew(this.original.isNew());
108
                return data;
109
        }
110

    
111
        /*
112
         * (non-Javadoc)
113
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#getDefaultEnvelope()
114
         */
115
        public Envelope getDefaultEnvelope() {
116
                return original.getDefaultEnvelope();
117
        }
118

    
119
        /*
120
         * (non-Javadoc)
121
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#getDefaultGeometry()
122
         */
123
        public Geometry getDefaultGeometry() {
124
                return original.getDefaultGeometry();
125
        }
126

    
127
        /*
128
         * (non-Javadoc)
129
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#getOID()
130
         */
131
        public Object getOID() {
132
                return original.getOID();
133
        }
134

    
135
        /*
136
         * (non-Javadoc)
137
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#getType()
138
         */
139
        public FeatureType getType() {
140
                return myFeatureType;
141
        }
142

    
143
        /*
144
         * (non-Javadoc)
145
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#isNew()
146
         */
147
        public boolean isNew() {
148
                return original.isNew();
149
        }
150

    
151
        /*
152
         * (non-Javadoc)
153
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#isNull(int)
154
         */
155
        public boolean isNull(int i) {
156
                return original.isNull(myFeatureType.getAttributeDescriptor(i)
157
                                .getName());
158
        }
159

    
160
        /*
161
         * (non-Javadoc)
162
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#isNull(java.lang.String)
163
         */
164
        public boolean isNull(String name) {
165
                return original.isNull(name);
166
        }
167

    
168
        /*
169
         * (non-Javadoc)
170
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#set(int, java.lang.Object)
171
         */
172
        public void set(int i, Object value) {
173
                original.set(myFeatureType.getAttributeDescriptor(i).getName(),
174
                                value);
175

    
176

    
177
        }
178

    
179
        /*
180
         * (non-Javadoc)
181
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#set(java.lang.String, java.lang.Object)
182
         */
183
        public void set(String name, Object value) {
184
                original.set(name, value);
185
        }
186

    
187
        /*
188
         * (non-Javadoc)
189
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#setDefaultEnvelope(org.gvsig.fmap.geom.primitive.Envelope)
190
         */
191
        public void setDefaultEnvelope(Envelope extent) {
192
                original.setDefaultEnvelope(extent);
193
        }
194

    
195
        /*
196
         * (non-Javadoc)
197
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#setDefaultGeometry(org.gvsig.fmap.geom.Geometry)
198
         */
199
        public void setDefaultGeometry(Geometry geom) {
200
                original.setDefaultGeometry(geom);
201

    
202
        }
203

    
204
        /*
205
         * (non-Javadoc)
206
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#setNew(boolean)
207
         */
208
        public void setNew(boolean isNew) {
209
                original.setNew(isNew);
210
        }
211

    
212
        /*
213
         * (non-Javadoc)
214
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#setOID(java.lang.Object)
215
         */
216
        public void setOID(Object oid) {
217
                original.setOID(oid);
218
        }
219

    
220
    @Override
221
    public Time getDefaultTime() {
222
        return original.getDefaultTime();
223
    }
224

    
225
    @Override
226
    public void setDefaultTime(Time time) {
227
        original.setDefaultTime(time);
228
    }
229

    
230
    @Override
231
    public void setExtraValue(int index, Object value) {
232
        this.original.setExtraValue(index, value);
233
    }
234

    
235
    @Override
236
    public Object getExtraValue(int index) {
237
        return this.original.getExtraValue(index);
238
    }
239

    
240
    @Override
241
    public Object getExtraValue(String name) {
242
        return this.original.getExtraValue(name);
243
    }
244

    
245
    @Override
246
    public void setExtraValueNames(String[] extraValueNames) {
247
        this.original.setExtraValueNames(extraValueNames);
248
    }
249
    
250
}