Statistics
| Revision:

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

History | View | Annotate | Download (2.08 KB)

1 19845 vcaballero
package org.gvsig.data.datastores.vectorial.db.jdbc.h2;
2 19541 vcaballero
3 20473 jmvivo
import java.sql.ResultSet;
4
import java.sql.SQLException;
5 19541 vcaballero
6 19906 jmvivo
import org.gvsig.data.datastores.vectorial.db.jdbc.JDBCFeature;
7 19893 jmvivo
import org.gvsig.data.datastores.vectorial.db.jdbc.JDBCStore;
8 20473 jmvivo
import org.gvsig.data.datastores.vectorial.db.jdbc.WKBParser2;
9 20578 jmvivo
import org.gvsig.data.exception.DataException;
10 20473 jmvivo
import org.gvsig.data.exception.ReadException;
11
import org.gvsig.data.vectorial.IFeature;
12
import org.gvsig.data.vectorial.IFeatureAttributeDescriptor;
13 19541 vcaballero
import org.gvsig.data.vectorial.IFeatureID;
14
import org.gvsig.data.vectorial.IFeatureType;
15 20473 jmvivo
import org.gvsig.data.vectorial.IsNotFeatureSettingException;
16 19541 vcaballero
17 20473 jmvivo
import com.iver.cit.gvsig.fmap.core.IGeometry;
18 19738 vcaballero
19 19742 vcaballero
20 20473 jmvivo
21 19906 jmvivo
public class H2Feature extends JDBCFeature{
22 19541 vcaballero
23 20473 jmvivo
        H2Feature(IFeatureType featureType, JDBCStore store, ResultSet rs) throws ReadException {
24
                super(featureType, store, rs);
25 20439 vcaballero
        }
26
27 20578 jmvivo
        protected H2Feature(H2Feature feature) throws ReadException{
28
                super(feature);
29
        }
30
31 19610 jmvivo
        /**
32
         *
33
         */
34
        private static final long serialVersionUID = -5836612523458472800L;
35 20473 jmvivo
        private static WKBParser2 wkbParser = new WKBParser2();
36 19541 vcaballero
37
        public IFeatureID getID() {
38 19781 jmvivo
                return new H2FeatureID(this.store,featureKey);
39 19541 vcaballero
        }
40
41 20473 jmvivo
        protected void loadValueFromResulset(ResultSet rs, IFeatureAttributeDescriptor attr) throws ReadException {
42
                IGeometry geom;
43
                String name = attr.getName();
44
                try{
45
                        if (attr.getDataType().equals(IFeatureAttributeDescriptor.TYPE_GEOMETRY)) {
46
                                byte[] data = rs.getBytes(name);
47
48
                                if (data == null) {
49
                                        geom = null;
50
                                } else{
51
                                        geom = wkbParser.parse(data);
52
                                }
53
        //                        feature.setDefaultGeometry(geom);
54
                                this.setGeometry(name,geom);
55
                        } else {
56
                                this.set(name, rs.getObject(name));
57
                        }
58
                } catch (SQLException e) {
59
                        throw new ReadException(this.store.getName(),e);
60
                } catch (IsNotFeatureSettingException e) {
61
                        throw new ReadException(this.store.getName(),e);
62
                }
63
64
65
        }
66 20578 jmvivo
67
        /* (non-Javadoc)
68
         * @see org.gvsig.data.vectorial.Feature#cloneFeature()
69
         */
70
        protected IFeature cloneFeature() throws DataException {
71
                return new H2Feature(this);
72
        }
73 19541 vcaballero
}