use of org.opengis.feature.type.Name in project GeoGig by boundlessgeo.
the class FormatCommonV1 method readFeatureType.
public static RevFeatureType readFeatureType(ObjectId id, DataInput in, FeatureTypeFactory typeFactory) throws IOException {
Name name = readName(in);
int propertyCount = in.readInt();
List<AttributeDescriptor> attributes = new ArrayList<AttributeDescriptor>();
for (int i = 0; i < propertyCount; i++) {
attributes.add(readAttributeDescriptor(in, typeFactory));
}
SimpleFeatureType ftype = typeFactory.createSimpleFeatureType(name, attributes, null, false, Collections.<Filter>emptyList(), BasicFeatureTypes.FEATURE, null);
return new RevFeatureTypeImpl(id, ftype);
}
use of org.opengis.feature.type.Name in project GeoGig by boundlessgeo.
the class FormatCommonV1 method readAttributeDescriptor.
private static AttributeDescriptor readAttributeDescriptor(DataInput in, FeatureTypeFactory typeFactory) throws IOException {
final Name name = readName(in);
final boolean nillable = in.readBoolean();
final int minOccurs = in.readInt();
final int maxOccurs = in.readInt();
final AttributeType type = readAttributeType(in, typeFactory);
if (type instanceof GeometryType)
return typeFactory.createGeometryDescriptor((GeometryType) type, name, minOccurs, maxOccurs, nillable, null);
else
return typeFactory.createAttributeDescriptor(type, name, minOccurs, maxOccurs, nillable, null);
}
use of org.opengis.feature.type.Name in project GeoGig by boundlessgeo.
the class FormatCommonV1 method readAttributeType.
private static AttributeType readAttributeType(DataInput in, FeatureTypeFactory typeFactory) throws IOException {
final Name name = readName(in);
final byte typeTag = in.readByte();
final FieldType type = FieldType.valueOf(typeTag);
if (Geometry.class.isAssignableFrom(type.getBinding())) {
// as opposed to a raw
final boolean isCRSCode = in.readBoolean();
// WKT string
final String crsText = in.readUTF();
final CoordinateReferenceSystem crs;
try {
if (isCRSCode) {
if ("urn:ogc:def:crs:EPSG::0".equals(crsText)) {
crs = null;
} else {
boolean forceLongitudeFirst = crsText.startsWith("EPSG:");
crs = CRS.decode(crsText, forceLongitudeFirst);
}
} else {
crs = CRS.parseWKT(crsText);
}
} catch (FactoryException e) {
throw new RuntimeException(e);
}
return typeFactory.createGeometryType(name, type.getBinding(), crs, false, false, Collections.<Filter>emptyList(), null, null);
} else {
return typeFactory.createAttributeType(name, type.getBinding(), false, false, Collections.<Filter>emptyList(), null, null);
}
}
use of org.opengis.feature.type.Name in project GeoGig by boundlessgeo.
the class FormatCommonV2 method readAttributeType.
private static AttributeType readAttributeType(DataInput in, FeatureTypeFactory typeFactory) throws IOException {
final Name name = readName(in);
final byte typeTag = in.readByte();
final FieldType type = FieldType.valueOf(typeTag);
if (Geometry.class.isAssignableFrom(type.getBinding())) {
// as opposed to a raw WKT string
final boolean isCRSCode = in.readBoolean();
final String crsText = in.readUTF();
final CoordinateReferenceSystem crs;
try {
if (isCRSCode) {
if ("urn:ogc:def:crs:EPSG::0".equals(crsText)) {
crs = null;
} else {
boolean forceLongitudeFirst = crsText.startsWith("EPSG:");
crs = CRS.decode(crsText, forceLongitudeFirst);
}
} else {
crs = CRS.parseWKT(crsText);
}
} catch (FactoryException e) {
throw new RuntimeException(e);
}
return typeFactory.createGeometryType(name, type.getBinding(), crs, false, false, Collections.<Filter>emptyList(), null, null);
} else {
return typeFactory.createAttributeType(name, type.getBinding(), false, false, Collections.<Filter>emptyList(), null, null);
}
}
use of org.opengis.feature.type.Name in project GeoGig by boundlessgeo.
the class WorkingTreeTest method testDeleteCollection.
@Test
public void testDeleteCollection() throws Exception {
List<Feature> featureList = new LinkedList<Feature>();
featureList.add(points1);
featureList.add(points2);
featureList.add(points3);
workTree.insert(pointsName, featureList.iterator(), LISTENER, null, 3);
assertTrue(workTree.findUnstaged(appendChild(pointsName, idP1)).isPresent());
assertTrue(workTree.findUnstaged(appendChild(pointsName, idP2)).isPresent());
assertTrue(workTree.findUnstaged(appendChild(pointsName, idP3)).isPresent());
List<Feature> deleteFeatures = new LinkedList<Feature>();
deleteFeatures.add(points1);
deleteFeatures.add(points3);
Name typeName = points1.getName();
workTree.delete(typeName, null, deleteFeatures.iterator());
assertFalse(workTree.findUnstaged(appendChild(pointsName, idP1)).isPresent());
assertTrue(workTree.findUnstaged(appendChild(pointsName, idP2)).isPresent());
assertFalse(workTree.findUnstaged(appendChild(pointsName, idP3)).isPresent());
}
Aggregations