Revision 45425 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeatureType.java
DefaultFeatureType.java | ||
---|---|---|
23 | 23 |
*/ |
24 | 24 |
package org.gvsig.fmap.dal.feature.impl; |
25 | 25 |
|
26 |
import org.gvsig.fmap.dal.JsonUtils; |
|
27 | 26 |
import java.io.File; |
28 | 27 |
import java.lang.ref.WeakReference; |
29 | 28 |
import java.util.ArrayList; |
... | ... | |
37 | 36 |
import java.util.Set; |
38 | 37 |
import java.util.function.Predicate; |
39 | 38 |
import java.util.zip.CRC32; |
40 |
import javax.json.Json; |
|
41 | 39 |
import javax.json.JsonObject; |
42 |
import javax.json.JsonObjectBuilder;
|
|
40 |
import javax.json.JsonValue;
|
|
43 | 41 |
import org.apache.commons.lang3.ArrayUtils; |
44 | 42 |
import org.apache.commons.lang3.StringUtils; |
45 | 43 |
|
... | ... | |
72 | 70 |
import org.gvsig.tools.persistence.PersistentState; |
73 | 71 |
import org.gvsig.tools.persistence.exception.PersistenceException; |
74 | 72 |
import org.gvsig.fmap.dal.feature.FeatureExtraColumns; |
73 |
import org.gvsig.fmap.dal.impl.expressionevaluator.DefaultFeatureAttributeEmulatorExpression; |
|
74 |
import org.gvsig.json.Json; |
|
75 |
import org.gvsig.json.JsonManager; |
|
76 |
import org.gvsig.json.JsonObjectBuilder; |
|
77 |
import org.gvsig.json.SupportToJson; |
|
75 | 78 |
|
76 | 79 |
@SuppressWarnings("UseSpecificCatch") |
77 | 80 |
public class DefaultFeatureType |
78 | 81 |
extends ArrayList<FeatureAttributeDescriptor> |
79 | 82 |
implements |
80 |
FeatureType, |
|
81 |
Persistent, |
|
82 |
DynClass, |
|
83 |
DynStruct_v2, |
|
84 |
org.gvsig.tools.lang.Cloneable { |
|
83 |
FeatureType,
|
|
84 |
Persistent,
|
|
85 |
DynClass,
|
|
86 |
DynStruct_v2,
|
|
87 |
org.gvsig.tools.lang.Cloneable {
|
|
85 | 88 |
|
86 | 89 |
/** |
87 | 90 |
* |
... | ... | |
1295 | 1298 |
@Override |
1296 | 1299 |
public JsonObjectBuilder toJsonBuilder() { |
1297 | 1300 |
JsonObjectBuilder builder = Json.createObjectBuilder(); |
1298 |
JsonUtils.builder_add(builder, "id",id); |
|
1299 |
JsonUtils.builder_add(builder, "internalID",internalID); |
|
1300 |
JsonUtils.builder_add(builder, "label",label); |
|
1301 |
JsonUtils.builder_add(builder, "description",description); |
|
1302 |
JsonUtils.builder_add(builder, "allowAtomaticValues",allowAtomaticValues); |
|
1303 |
JsonUtils.builder_add(builder, "hasOID",hasOID); |
|
1304 |
JsonUtils.builder_add(builder, "defaultGeometryAttributeName",defaultGeometryAttributeName); |
|
1305 |
JsonUtils.builder_add(builder, "defaultTimeAttributeName",defaultTimeAttributeName); |
|
1306 |
JsonUtils.builder_add(builder, "tags", tags); |
|
1307 |
JsonUtils.builder_add(builder, "extraColumns", this.extraColumns); |
|
1308 |
JsonUtils.builder_add(builder, "descriptors", this); |
|
1301 |
builder.add_class(this); |
|
1302 |
builder.add("id",id); |
|
1303 |
builder.add("internalID",internalID); |
|
1304 |
builder.add("label",label); |
|
1305 |
builder.add("description",description); |
|
1306 |
builder.add("allowAtomaticValues",allowAtomaticValues); |
|
1307 |
builder.add("hasOID",hasOID); |
|
1308 |
builder.add("defaultGeometryAttributeName",defaultGeometryAttributeName); |
|
1309 |
builder.add("defaultTimeAttributeName",defaultTimeAttributeName); |
|
1310 |
builder.add("tags", tags); |
|
1311 |
builder.add("extraColumns", this.extraColumns); |
|
1312 |
builder.add("descriptors", this.iterator()); |
|
1309 | 1313 |
|
1310 | 1314 |
return builder; |
1311 | 1315 |
} |
1316 |
|
|
1317 |
public void fromJson(JsonObject json) { |
|
1318 |
this.clear(); |
|
1319 |
this.id = json.getString("id", null); |
|
1320 |
this.internalID = json.getString("internalID", null); |
|
1321 |
this.label = json.getString("label", null); |
|
1322 |
this.description = json.getString("description",null); |
|
1323 |
this.allowAtomaticValues = json.getBoolean("allowAtomaticValues",false); |
|
1324 |
this.hasOID = json.getBoolean("hasOID", false); |
|
1325 |
this.defaultGeometryAttributeName = json.getString("defaultGeometryAttributeName", null); |
|
1326 |
this.defaultTimeAttributeName = json.getString("defaultTimeAttributeName",null); |
|
1327 |
this.tags = (Tags) Json.toObject(json, "tags"); |
|
1328 |
this.extraColumns = (FeatureExtraColumns) Json.toObject(json, "extraColumns"); |
|
1329 |
if( json.containsKey("descriptors") ) { |
|
1330 |
for (JsonValue jsonValue : json.getJsonArray("descriptors")) { |
|
1331 |
DefaultEditableFeatureAttributeDescriptor attr = new DefaultEditableFeatureAttributeDescriptor(this, false); |
|
1332 |
attr.fromJson((JsonObject) jsonValue); |
|
1333 |
this.add(attr); |
|
1334 |
} |
|
1335 |
} |
|
1336 |
} |
|
1337 |
|
|
1338 |
private static class TheJsonSerializer implements JsonManager.JsonSerializer { |
|
1339 |
|
|
1340 |
public TheJsonSerializer() { |
|
1341 |
} |
|
1342 |
|
|
1343 |
@Override |
|
1344 |
public Class getObjectClass() { |
|
1345 |
return DefaultFeatureType.class; |
|
1346 |
} |
|
1347 |
|
|
1348 |
@Override |
|
1349 |
public Object toObject(JsonObject json) { |
|
1350 |
DefaultFeatureType o = new DefaultFeatureType(); |
|
1351 |
o.fromJson(json); |
|
1352 |
return o; |
|
1353 |
} |
|
1354 |
|
|
1355 |
@Override |
|
1356 |
public JsonObjectBuilder toJsonBuilder(Object value) { |
|
1357 |
return ((SupportToJson)value).toJsonBuilder(); |
|
1358 |
} |
|
1359 |
|
|
1360 |
} |
|
1361 |
|
|
1362 |
public static void selfRegister() { |
|
1363 |
Json.registerSerializer(new TheJsonSerializer()); |
|
1364 |
} |
|
1365 |
|
|
1312 | 1366 |
} |
Also available in: Unified diff