Statistics
| Revision:

root / trunk / libraries / libFMap_dataDB / src / org / gvsig / data / datastores / vectorial / db / jdbc / h2 / H2Feature.java @ 20920

History | View | Annotate | Download (2.06 KB)

1
package org.gvsig.data.datastores.vectorial.db.jdbc.h2;
2

    
3
import java.sql.ResultSet;
4
import java.sql.SQLException;
5

    
6
import org.gvsig.data.datastores.vectorial.db.jdbc.JDBCFeature;
7
import org.gvsig.data.datastores.vectorial.db.jdbc.JDBCStore;
8
import org.gvsig.data.datastores.vectorial.db.jdbc.WKBParser2;
9
import org.gvsig.data.exception.DataException;
10
import org.gvsig.data.exception.ReadException;
11
import org.gvsig.data.vectorial.IFeature;
12
import org.gvsig.data.vectorial.IFeatureAttributeDescriptor;
13
import org.gvsig.data.vectorial.IFeatureID;
14
import org.gvsig.data.vectorial.IFeatureType;
15
import org.gvsig.data.vectorial.IsNotFeatureSettingException;
16
import org.gvsig.fmap.geom.Geometry;
17

    
18
public class H2Feature extends JDBCFeature{
19

    
20
        H2Feature(IFeatureType featureType, JDBCStore store, ResultSet rs) throws ReadException {
21
                super(featureType, store, rs);
22
        }
23

    
24
        protected H2Feature(H2Feature feature) throws ReadException{
25
                super(feature);
26
        }
27

    
28
        /**
29
         *
30
         */
31
        private static final long serialVersionUID = -5836612523458472800L;
32
        private static WKBParser2 wkbParser = new WKBParser2();
33

    
34
        public IFeatureID getID() {
35
                return new H2FeatureID(this.store,featureKey);
36
        }
37

    
38
        protected void loadValueFromResulset(ResultSet rs, IFeatureAttributeDescriptor attr) throws ReadException {
39
                Geometry geom;
40
                String name = attr.getName();
41
                try{
42
                        if (attr.getDataType().equals(IFeatureAttributeDescriptor.TYPE_GEOMETRY)) {
43
                                byte[] data = rs.getBytes(name);
44

    
45
                                if (data == null) {
46
                                        geom = null;
47
                                } else{
48
                                        geom = wkbParser.parse(data);
49
                                }
50
        //                        feature.setDefaultGeometry(geom);
51
                                this.setGeometry(name,geom);
52
                        } else {
53
                                this.set(name, rs.getObject(name));
54
                        }
55
                } catch (SQLException e) {
56
                        throw new ReadException(this.store.getName(),e);
57
                } catch (IsNotFeatureSettingException e) {
58
                        throw new ReadException(this.store.getName(),e);
59
                }
60

    
61

    
62
        }
63

    
64
        /* (non-Javadoc)
65
         * @see org.gvsig.data.vectorial.Feature#cloneFeature()
66
         */
67
        protected IFeature cloneFeature() throws DataException {
68
                return new H2Feature(this);
69
        }
70
}