Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / libraries / libFMap_dataDB / src / org / gvsig / fmap / data / feature / db / jdbc / h2 / H2Feature.java @ 22373

History | View | Annotate | Download (2.66 KB)

1 22373 jmvivo
package org.gvsig.fmap.data.feature.db.jdbc.h2;
2 19541 vcaballero
3 20473 jmvivo
import java.sql.ResultSet;
4
import java.sql.SQLException;
5 19541 vcaballero
6 21911 jmvivo
import org.gvsig.fmap.data.DataException;
7
import org.gvsig.fmap.data.ReadException;
8 22360 jmvivo
import org.gvsig.fmap.data.feature.Feature;
9
import org.gvsig.fmap.data.feature.FeatureAttributeDescriptor;
10
import org.gvsig.fmap.data.feature.FeatureID;
11
import org.gvsig.fmap.data.feature.FeatureType;
12
import org.gvsig.fmap.data.feature.IsNotFeatureSettingException;
13 22373 jmvivo
import org.gvsig.fmap.data.feature.db.jdbc.JDBCFeature;
14
import org.gvsig.fmap.data.feature.db.jdbc.JDBCStore;
15 20920 vcaballero
import org.gvsig.fmap.geom.Geometry;
16 21364 vcaballero
import org.gvsig.fmap.geom.operation.GeometryOperationException;
17
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
18
import org.gvsig.fmap.geom.operation.fromwkb.FromWKB;
19
import org.gvsig.fmap.geom.operation.fromwkb.FromWKBGeometryOperationContext;
20
import org.gvsig.fmap.geom.operation.towkb.ToWKB;
21
import org.gvsig.fmap.geom.primitive.NullGeometry;
22 19541 vcaballero
23 19906 jmvivo
public class H2Feature extends JDBCFeature{
24 19541 vcaballero
25 21045 jmvivo
        H2Feature(FeatureType featureType, JDBCStore store, ResultSet rs) throws ReadException {
26 20473 jmvivo
                super(featureType, store, rs);
27 20439 vcaballero
        }
28
29 20578 jmvivo
        protected H2Feature(H2Feature feature) throws ReadException{
30
                super(feature);
31
        }
32
33 19610 jmvivo
        /**
34
         *
35
         */
36
        private static final long serialVersionUID = -5836612523458472800L;
37 19541 vcaballero
38 21045 jmvivo
        public FeatureID getID() {
39 19781 jmvivo
                return new H2FeatureID(this.store,featureKey);
40 19541 vcaballero
        }
41
42 21045 jmvivo
        protected void loadValueFromResulset(ResultSet rs, FeatureAttributeDescriptor attr) throws ReadException {
43 20920 vcaballero
                Geometry geom;
44 20473 jmvivo
                String name = attr.getName();
45
                try{
46 21045 jmvivo
                        if (attr.getDataType().equals(FeatureAttributeDescriptor.TYPE_GEOMETRY)) {
47 20473 jmvivo
                                byte[] data = rs.getBytes(name);
48
49
                                if (data == null) {
50
                                        geom = null;
51
                                } else{
52 21364 vcaballero
                                        geom=new NullGeometry();
53
                                        FromWKBGeometryOperationContext fwkb=new FromWKBGeometryOperationContext();
54
                                        fwkb.setData(data);
55
                                        geom=(Geometry)geom.invokeOperation(FromWKB.CODE,fwkb);
56 20473 jmvivo
                                }
57
        //                        feature.setDefaultGeometry(geom);
58
                                this.setGeometry(name,geom);
59
                        } else {
60
                                this.set(name, rs.getObject(name));
61
                        }
62
                } catch (SQLException e) {
63
                        throw new ReadException(this.store.getName(),e);
64
                } catch (IsNotFeatureSettingException e) {
65
                        throw new ReadException(this.store.getName(),e);
66 21364 vcaballero
                } catch (GeometryOperationNotSupportedException e) {
67
                        throw new ReadException(this.store.getName(),e);
68
                } catch (GeometryOperationException e) {
69
                        throw new ReadException(this.store.getName(),e);
70 20473 jmvivo
                }
71
72
73
        }
74 20578 jmvivo
75
        /* (non-Javadoc)
76 22360 jmvivo
         * @see org.gvsig.fmap.data.feature.AbstractFeature#cloneFeature()
77 20578 jmvivo
         */
78 21045 jmvivo
        protected Feature cloneFeature() throws DataException {
79 20578 jmvivo
                return new H2Feature(this);
80
        }
81 19541 vcaballero
}