Revision 3315 org.gvsig.vcsgis/trunk/org.gvsig.vcsgis/org.gvsig.vcsgis.lib/org.gvsig.vcsgis.lib.impl/src/main/java/org/gvsig/vcsgis/lib/workspace/tables/TopologyplanTable.java

View differences:

TopologyplanTable.java
1 1
package org.gvsig.vcsgis.lib.workspace.tables;
2 2

  
3
import org.gvsig.vcsgis.lib.repository.localdb.tables.*;
3
import java.security.MessageDigest;
4
import javax.json.JsonObject;
5
import org.apache.commons.codec.binary.Hex;
4 6
import org.gvsig.fmap.dal.DALLocator;
5 7
import org.gvsig.fmap.dal.DataManager;
6 8
import org.gvsig.fmap.dal.feature.EditableFeatureType;
7 9
import org.gvsig.fmap.dal.feature.Feature;
10
import org.gvsig.fmap.dal.feature.FeatureSet.DisposableFeatureSetIterable;
8 11
import org.gvsig.fmap.dal.feature.FeatureStore;
9 12
import org.gvsig.fmap.dal.feature.FeatureType;
13
import org.gvsig.json.JsonObjectBuilder;
10 14
import org.gvsig.tools.dataTypes.DataTypes;
11 15
import org.gvsig.tools.dispose.DisposeUtils;
16
import org.gvsig.vcsgis.lib.VCSGisTopologyPlan;
17
import org.gvsig.vcsgis.lib.VCSGisTopologyPlanImpl;
18
import static org.gvsig.vcsgis.lib.VCSGisUtils.updateMessageDigest;
12 19
import org.gvsig.vcsgis.lib.workspace.VCSGisWorkspace;
13 20

  
14 21
/**
......
16 23
 * @author gvSIG Team
17 24
 */
18 25
@SuppressWarnings("UseSpecificCatch")
19
public class TopologyplanTable extends AbstractRepoTable {
26
public class TopologyplanTable extends AbstractTable {
20 27

  
21 28
    public static final String TABLE_NAME = "VCSGIS_TOPOLOGYPLANS";
22 29

  
......
70 77
        }
71 78
    }
72 79
    
80
    
81
    public String getHashCode(VCSGisWorkspace workspace) {
82
        FeatureStore store = null;
83
        DisposableFeatureSetIterable changes = null;
84
        try {
85
            MessageDigest md = MessageDigest.getInstance("MD5");
86
            store = workspace.getFeatureStore(TABLE_NAME);
87
            changes = store.getFeatureSet().iterable();
88
            for (Feature change : changes) {
89
                updateMessageDigest(md, change, COD_TOPOLOGYPLAN);
90
                updateMessageDigest(md, change, TOPPLAN_NAME);
91
                updateMessageDigest(md, change, TOPPLAN_DESCRIPTION);
92
                updateMessageDigest(md, change, TOPPLAN_DATA);
93
            }
94
            String hash = Hex.encodeHexString(md.digest());
95
            return hash;
96
        } catch (Exception ex) {
97
            throw new RuntimeException("Can't retrieve hash of topology plans.", ex);
98
        } finally {
99
            DisposeUtils.dispose(changes);
100
            DisposeUtils.dispose(store);
101
        }
102
    }
103

  
104
    public static class TopologyPlanRow extends AbstractRow implements VCSGisTopologyPlan {
105

  
106
        public TopologyPlanRow(VCSGisWorkspace workspace) {
107
            super(workspace, TABLE_NAME, COD_TOPOLOGYPLAN);
108
        }
109

  
110
        public TopologyPlanRow(VCSGisWorkspace workspace, Feature feature) {
111
            super(workspace, TABLE_NAME, COD_TOPOLOGYPLAN, feature);
112
        }
113

  
114

  
115
        @Override
116
        public String getTopologyPlanCode() {
117
            return this.getString(COD_TOPOLOGYPLAN);
118
        }
119

  
120
        @Override
121
        public String getName() {
122
            return this.getString(TOPPLAN_NAME);
123
        }
124

  
125
        @Override
126
        public String getDescription() {
127
            return this.getString(TOPPLAN_DESCRIPTION);
128
        }
129

  
130
        @Override
131
        public String getData() {
132
            return this.getString(TOPPLAN_DATA);
133
        }
134

  
135
        @Override
136
        public String getLabel() {
137
            return this.getName();
138
        }
139

  
140
        @Override
141
        public VCSGisTopologyPlan getValue() {
142
            return this;
143
        }
144

  
145
        @Override
146
        public void copyFrom(VCSGisTopologyPlan other) {
147
            this.set(COD_TOPOLOGYPLAN,other.getTopologyPlanCode());
148
            this.set(TOPPLAN_NAME,other.getName());
149
            this.set(TOPPLAN_DESCRIPTION,other.getDescription());
150
            this.set(TOPPLAN_DATA,other.getData());
151
        }
152

  
153
        @Override
154
        public JsonObject toJson() {
155
            return this.toJsonBuilder().build();
156
        }
157

  
158
        @Override
159
        public JsonObjectBuilder toJsonBuilder() {
160
            return VCSGisTopologyPlanImpl.toJsonBuilder(this);
161
        }
162

  
163
        @Override
164
        public String toString() {
165
            return VCSGisTopologyPlanImpl.toString(this);
166
        }
167
    }
73 168
}

Also available in: Unified diff