Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / libraries / libFMap_dataDB / src / org / gvsig / fmap / data / feature / db / jdbc / postgresql / PostgresqlFeature.java @ 23754

History | View | Annotate | Download (2.21 KB)

1
package org.gvsig.fmap.data.feature.db.jdbc.postgresql;
2

    
3
import java.sql.ResultSet;
4

    
5
import org.gvsig.fmap.data.exceptions.DataException;
6
import org.gvsig.fmap.data.exceptions.ReadException;
7
import org.gvsig.fmap.data.feature.Feature;
8
import org.gvsig.fmap.data.feature.FeatureAttributeDescriptor;
9
import org.gvsig.fmap.data.feature.FeatureID;
10
import org.gvsig.fmap.data.feature.FeatureType;
11
import org.gvsig.fmap.data.feature.db.jdbc.JDBCFeature;
12
import org.gvsig.fmap.data.feature.db.jdbc.JDBCStore;
13
import org.gvsig.fmap.data.feature.exceptions.IsNotFeatureSettingException;
14
import org.gvsig.fmap.geom.Geometry;
15
import org.postgis.PGgeometry;
16

    
17

    
18

    
19
public class PostgresqlFeature extends JDBCFeature{
20

    
21
        /**
22
         *
23
         */
24
        private static final long serialVersionUID = -8217916635473746942L;
25

    
26

    
27
        PostgresqlFeature(FeatureType featureType, JDBCStore store, ResultSet rs) throws ReadException {
28
                super(featureType, store, rs);
29
        }
30

    
31
        protected PostgresqlFeature(PostgresqlFeature feature) throws ReadException{
32
                super(feature);
33
        }
34

    
35
        /* (non-Javadoc)
36
         * @see org.gvsig.fmap.data.feature.AbstractFeature#cloneFeature()
37
         */
38
        protected Feature cloneFeature() throws DataException {
39
                return new PostgresqlFeature(this);
40
        }
41

    
42

    
43
        public FeatureID getID() {
44
                return new PostgresqlFeatureID(this.store,featureKey);
45
        }
46

    
47
        /* (non-Javadoc)
48
         * @see org.gvsig.fmap.data.feature.db.jdbc.JDBCFeature#loadValueFromResulset(java.sql.ResultSet, org.gvsig.fmap.data.feature.FeatureAttributeDescriptor)
49
         */
50
        protected void loadValueFromResulset(ResultSet rs, FeatureAttributeDescriptor attr) throws ReadException {
51
                Geometry geom = null;
52
                String name = attr.getName();
53

    
54
                try {
55
                        if (attr.getDataType().equals(FeatureAttributeDescriptor.GEOMETRY)) {
56

    
57
                                PGgeometry data =(PGgeometry)rs.getObject(name);
58
                                if (data == null) {
59
                                        geom = null;
60
                                } else{
61
                                        geom = PostGIS2Geometry.getGeneralPath(data);
62
                                }
63
                                this.setGeometry(name,geom);
64
                        } else {
65
                                this.set(name, rs.getObject(name));
66
                        }
67
                } catch (java.sql.SQLException e) {
68
                        throw new ReadException(this.store.getName(),e);
69
                } catch (IsNotFeatureSettingException e) {
70
                        throw new ReadException(this.store.getName(),e);
71
                }
72

    
73
        }
74

    
75

    
76
}
77