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

History | View | Annotate | Download (5.32 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

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

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

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

    
64
        }
65

    
66
        /*
67
         * (non-Javadoc)
68
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#get(int)
69
         */
70
        public Object get(int i) {
71
                return original.get(myFeatureType.getAttributeDescriptor(i).getName());
72
        }
73

    
74
        /*
75
         * (non-Javadoc)
76
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#get(java.lang.String)
77
         */
78
        public Object get(String name) {
79
                return original.get(name);
80
        }
81

    
82
        /*
83
         * (non-Javadoc)
84
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#getCopy()
85
         */
86
        public FeatureProvider getCopy() {
87
                DefaultFeatureProvider data = new DefaultFeatureProvider(myFeatureType);
88
                data.setOID(this.original.getOID());
89
                Iterator iter = myFeatureType.iterator();
90
                FeatureAttributeDescriptor attr;
91
                while (iter.hasNext()) {
92
                        attr = (FeatureAttributeDescriptor) iter.next();
93
                        data.set(attr.getIndex(), this.original.get(attr.getName()));
94
                }
95
                data.setNew(this.original.isNew());
96
                return data;
97
        }
98

    
99
        /*
100
         * (non-Javadoc)
101
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#getDefaultEnvelope()
102
         */
103
        public Envelope getDefaultEnvelope() {
104
                return original.getDefaultEnvelope();
105
        }
106

    
107
        /*
108
         * (non-Javadoc)
109
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#getDefaultGeometry()
110
         */
111
        public Geometry getDefaultGeometry() {
112
                return original.getDefaultGeometry();
113
        }
114

    
115
        /*
116
         * (non-Javadoc)
117
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#getOID()
118
         */
119
        public Object getOID() {
120
                return original.getOID();
121
        }
122

    
123
        /*
124
         * (non-Javadoc)
125
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#getType()
126
         */
127
        public FeatureType getType() {
128
                return myFeatureType;
129
        }
130

    
131
        /*
132
         * (non-Javadoc)
133
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#isNew()
134
         */
135
        public boolean isNew() {
136
                return original.isNew();
137
        }
138

    
139
        /*
140
         * (non-Javadoc)
141
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#isNull(int)
142
         */
143
        public boolean isNull(int i) {
144
                return original.isNull(myFeatureType.getAttributeDescriptor(i)
145
                                .getName());
146
        }
147

    
148
        /*
149
         * (non-Javadoc)
150
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#isNull(java.lang.String)
151
         */
152
        public boolean isNull(String name) {
153
                return original.isNull(name);
154
        }
155

    
156
        /*
157
         * (non-Javadoc)
158
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#set(int, java.lang.Object)
159
         */
160
        public void set(int i, Object value) {
161
                original.set(myFeatureType.getAttributeDescriptor(i).getName(),
162
                                value);
163

    
164

    
165
        }
166

    
167
        /*
168
         * (non-Javadoc)
169
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#set(java.lang.String, java.lang.Object)
170
         */
171
        public void set(String name, Object value) {
172
                original.set(name, value);
173
        }
174

    
175
        /*
176
         * (non-Javadoc)
177
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#setDefaultEnvelope(org.gvsig.fmap.geom.primitive.Envelope)
178
         */
179
        public void setDefaultEnvelope(Envelope extent) {
180
                original.setDefaultEnvelope(extent);
181
        }
182

    
183
        /*
184
         * (non-Javadoc)
185
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#setDefaultGeometry(org.gvsig.fmap.geom.Geometry)
186
         */
187
        public void setDefaultGeometry(Geometry geom) {
188
                original.setDefaultGeometry(geom);
189

    
190
        }
191

    
192
        /*
193
         * (non-Javadoc)
194
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#setNew(boolean)
195
         */
196
        public void setNew(boolean isNew) {
197
                original.setNew(isNew);
198
        }
199

    
200
        /*
201
         * (non-Javadoc)
202
         * @see org.gvsig.fmap.dal.feature.spi.FeatureProvider#setOID(java.lang.Object)
203
         */
204
        public void setOID(Object oid) {
205
                original.setOID(oid);
206
        }
207

    
208
}