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 @ 44376

History | View | Annotate | Download (6.38 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 DefaultFeatureProvider 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(DefaultFeatureProvider 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
                        data.set(attr.getIndex(), this.original.get(attr.getName()));
104
                }
105
                data.setNew(this.original.isNew());
106
                return data;
107
        }
108

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

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

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

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

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

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

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

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

    
174

    
175
        }
176

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

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

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

    
200
        }
201

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

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

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

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

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

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

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

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