Statistics
| Revision:

root / branches / Mobile_Compatible_Hito_1 / libFMap / src-data / org / gvsig / data / vectorial / MemoryFeatureID.java @ 21606

History | View | Annotate | Download (2.18 KB)

1 21606 jldominguez
package org.gvsig.data.vectorial;
2
3
public class MemoryFeatureID implements IFeatureID{
4
        private IFeature feature;
5
        public MemoryFeatureID(IFeature feature){
6
                this.feature=feature;
7
        }
8
        public IFeature getFeature(IFeatureType featureType) {
9
                        IFeature auxFeature=new MemoryFeature(featureType,false);
10
                        for (int i=0;i<featureType.size();i++) {
11
                                IFeatureAttributeDescriptor descriptor= (IFeatureAttributeDescriptor)featureType.get(i);
12
                                String name=descriptor.getName();
13
                                String dataType=descriptor.getDataType();
14
                                if (IFeatureAttributeDescriptor.TYPE_BOOLEAN==dataType){
15
                                        auxFeature.set(name,feature.getBoolean(name));
16
                                }else if (IFeatureAttributeDescriptor.TYPE_DATE==dataType){
17
                                        auxFeature.set(name,feature.getDate(name));
18
                                }else if (IFeatureAttributeDescriptor.TYPE_DOUBLE==dataType){
19
                                        auxFeature.set(name,feature.getDouble(name));
20
                                }else if (IFeatureAttributeDescriptor.TYPE_FEATURE==dataType){
21
                                        auxFeature.set(name,feature.getFeature(name));
22
                                }else if (IFeatureAttributeDescriptor.TYPE_FLOAT==dataType){
23
                                        auxFeature.set(name,feature.getFloat(name));
24
                                }else if (IFeatureAttributeDescriptor.TYPE_GEOMETRY==dataType){
25
                                        auxFeature.set(name,feature.getGeometry(name));
26
                                }else if (IFeatureAttributeDescriptor.TYPE_INT==dataType){
27
                                        auxFeature.set(name,feature.getInt(name));
28
                                }else if (IFeatureAttributeDescriptor.TYPE_LONG==dataType){
29
                                        auxFeature.set(name,feature.getLong(name));
30
                                }else if (IFeatureAttributeDescriptor.TYPE_STRING==dataType){
31
                                        auxFeature.set(name,feature.getString(name));
32
                                }else if (IFeatureAttributeDescriptor.TYPE_OBJECT==dataType){
33
                                        auxFeature.set(name,feature.get(name));
34
                                }else if (IFeatureAttributeDescriptor.TYPE_BYTE==dataType){
35
                                        auxFeature.set(name,feature.get(name));
36
                                }
37
                }
38
                return auxFeature;
39
        }
40
        public boolean equals(Object obj) {
41
                if (obj instanceof MemoryFeatureID){
42
                        MemoryFeatureID mfObj =(MemoryFeatureID)obj;
43
                        return mfObj.feature.equals(this.feature);
44
//                        if (!mfObj.feature.getType().equals(this.feature.getType())){
45
//                                return false;
46
//                        }
47
//                        int id = this.feature.getType().getFieldIdIndex();
48
//                        return (mfObj.feature.get(id).equals(this.feature.get(id)));
49
50
                }
51
                return false;
52
        }
53
54
}