Statistics
| Revision:

root / branches / v2_0_0_prep / libraries / libFMap_dataFile / src / org / gvsig / fmap / data / feature / file / shp / ShpFeature.java @ 23088

History | View | Annotate | Download (2.4 KB)

1
package org.gvsig.fmap.data.feature.file.shp;
2

    
3
import java.util.List;
4
import java.util.Locale;
5

    
6
import org.gvsig.fmap.data.DataException;
7
import org.gvsig.fmap.data.ReadException;
8
import org.gvsig.fmap.data.feature.AttributeDescriptor;
9
import org.gvsig.fmap.data.feature.Feature;
10
import org.gvsig.fmap.data.feature.FeatureAttributeDescriptor;
11
import org.gvsig.fmap.data.feature.FeatureID;
12
import org.gvsig.fmap.data.feature.FeatureType;
13
import org.gvsig.fmap.data.feature.IsNotFeatureSettingException;
14
import org.gvsig.fmap.data.feature.file.dbf.DBFFeature;
15
import org.gvsig.fmap.geom.Geometry;
16
import org.gvsig.fmap.geom.primitive.Envelope;
17

    
18

    
19

    
20
public class ShpFeature extends DBFFeature{
21
        protected static Locale ukLocale = new Locale("en", "UK");
22
        protected Envelope extent=null;
23
//        private SHPStore store;
24
//        private long featureIndex;
25

    
26
        ShpFeature(FeatureType featureType, SHPStore store,long featureIndex) throws ReadException {
27
                super(featureType,store,featureIndex);
28
                load();
29
//                this.store=store;
30
//                this.featureIndex=featureIndex;
31

    
32
        }
33

    
34

    
35

    
36

    
37
        /* (non-Javadoc)
38
         * @see org.gvsig.fmap.data.feature.file.dbf.DBFFeature#load()
39
         */
40
        private void load() throws ReadException {
41
                this.extent= ((SHPStore)store).getBoundingBox(featureIndex);
42
        }
43

    
44

    
45

    
46

    
47
        protected void loadValue(FeatureAttributeDescriptor descriptor) throws ReadException, IsNotFeatureSettingException {
48
                if (descriptor.getDataType().equals(FeatureAttributeDescriptor.TYPE_GEOMETRY)){
49
                        this.setGeometry(((AttributeDescriptor)descriptor).originalPosition(), ((SHPStore)store).getGeometry(featureIndex) );
50
                } else {
51
                        super.loadValue(descriptor);
52
                }
53
        }
54

    
55

    
56

    
57
        public FeatureID getID() {
58
                return new ShpFeatureID((SHPStore)this.store,featureIndex);
59
        }
60

    
61
        public Envelope getExtent(){
62
                return this.extent;
63
        }
64

    
65
        public List getAllSRS() {
66
                // TODO Auto-generated method stub
67
                return null;
68
        }
69

    
70
        public String getDefaultSRS() {
71
                // TODO Auto-generated method stub
72
                return null;
73
        }
74

    
75
        public int[] getGeometryTypes() {
76
                Geometry geometry= (Geometry)getDefaultGeometry();
77
                if (geometry!=null)
78
                        return new int[]{geometry.getType()};
79
                return null;
80
        }
81

    
82

    
83

    
84
        protected Feature cloneFeature() throws DataException {
85
                try {
86
                        return new ShpFeature(this.featureType,(SHPStore)this.store,this.featureIndex);
87
                } catch (ReadException e) {
88
                        throw new IsNotFeatureSettingException("Clone");
89
                }
90
        }
91

    
92

    
93

    
94

    
95
}