Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / libraries / libFMap_dataFile / src / org / gvsig / fmap / data / feature / file / shp / ShpFeature.java @ 22373

History | View | Annotate | Download (2.46 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
        protected void load() throws ReadException {
41
                // TODO Auto-generated method stub
42
                super.load();
43
                this.extent= ((SHPStore)store).getBoundingBox(featureIndex);
44
        }
45

    
46

    
47

    
48

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

    
57

    
58

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

    
63
        public Envelope getExtent(){
64
                return this.extent;
65
        }
66

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

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

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

    
84

    
85

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

    
94

    
95

    
96

    
97
}