WfsFactory.eINSTANCE.createFeatureCollectionType(); featureCollectionType.getFeature().add(collection); WfsFactory.eINSTANCE.createFeatureCollectionType(); featureCollectionType.getFeature().add(collection);
GetFeatureType getFeature = factory.createGetFeatureType(); getFeature.setService("WFS"); getFeature.setVersion(getVersion()); : ResultTypeType.HITS_LITERAL); QueryType wfsQuery = factory.createQueryType(); wfsQuery.setTypeName(Collections.singletonList(typeName));
protected DeleteElementType createDelete(WfsFactory factory, Delete elem) throws Exception { DeleteElementType delete = factory.createDeleteElementType(); QName typeName = elem.getTypeName(); delete.setTypeName(typeName); Filter filter = elem.getFilter(); delete.setFilter(filter); return delete; }
protected UpdateElementType createUpdate(WfsFactory factory, Update elem) throws Exception { List<QName> propertyNames = elem.getPropertyNames(); List<Object> newValues = elem.getNewValues(); if (propertyNames.size() != newValues.size()) { throw new IllegalArgumentException( "Got " + propertyNames.size() + " property names and " + newValues.size() + " values"); } UpdateElementType update = factory.createUpdateElementType(); QName typeName = elem.getTypeName(); update.setTypeName(typeName); String srsName = getFeatureTypeInfo(typeName).getDefaultSRS(); update.setSrsName(new URI(srsName)); Filter filter = elem.getFilter(); update.setFilter(filter); @SuppressWarnings("unchecked") List<PropertyType> properties = update.getProperty(); for (int i = 0; i < propertyNames.size(); i++) { QName propName = propertyNames.get(i); Object value = newValues.get(i); PropertyType property = factory.createPropertyType(); property.setName(propName); property.setValue(value); properties.add(property); } return update; }
FeatureCollectionType features = WfsFactory.eINSTANCE.createFeatureCollectionType(); GetFeatureType gfreq = WfsFactory.eINSTANCE.createGetFeatureType(); gfreq.setBaseUrl(fInfoReq.getBaseUrl()); features.getFeature().add(fc); QueryType qt = WfsFactory.eINSTANCE.createQueryType(); String crs = GML2EncodingUtils.epsgCode(fc.getSchema().getCoordinateReferenceSystem()); if (crs != null) {
@Test public void testOutputZipFileNameSpecifiedInFormatOptions() throws Exception { ShapeZipOutputFormat zip = new ShapeZipOutputFormat(getGeoServer(), getCatalog(), getResourceLoader()); FeatureCollectionResponse mockResult = FeatureCollectionResponse.adapt(WfsFactory.eINSTANCE.createFeatureCollectionType()); mockResult.getFeature().add(getFeatureSource(ALL_DOTS).getFeatures(Filter.INCLUDE)); GetFeatureType mockRequest = WfsFactory.eINSTANCE.createGetFeatureType(); Operation mockOperation = new Operation( "GetFeature", getServiceDescriptor10(), null, new Object[] {mockRequest}); assertEquals("All_Types_Dots.zip", zip.getAttachmentFileName(mockResult, mockOperation)); mockRequest.getFormatOptions().put("FILENAME", "REQUEST_SUPPLIED_FILENAME.zip"); assertEquals( "REQUEST_SUPPLIED_FILENAME.zip", zip.getAttachmentFileName(mockResult, mockOperation)); }
final TransactionType transaction = WfsFactory.eINSTANCE.createTransactionType(); schema.getTypeName()); final Set deletedIds = new HashSet(); final InsertElementType insert = WfsFactory.eINSTANCE.createInsertElementType(); final UpdateElementType update = WfsFactory.eINSTANCE.createUpdateElementType(); final EList properties = update.getProperty(); final PropertyType property = WfsFactory.eINSTANCE.createPropertyType(); String name = (String) it.next(); property.setName(new QName(name)); final DeleteElementType delete = WfsFactory.eINSTANCE.createDeleteElementType(); delete.setFilter(filterFactory.id(deletedIds)); delete.setTypeName(typeName);
/** See https://osgeo-org.atlassian.net/browse/GEOS-1875 */ @SuppressWarnings("unchecked") @Test public void testUserProvidedDefaultNamespace() throws Exception { final QName qName = SystemTestData.STREAMS; final String typeName = qName.getLocalPart(); final String defaultNamespace = qName.getNamespaceURI(); Map<String, String> raw = new HashMap<String, String>(); raw.put("service", "WFS"); raw.put("version", "1.1.0"); raw.put("request", "GetFeature"); raw.put("typeName", typeName); raw.put("namespace", "xmlns(" + defaultNamespace + ")"); Map<String, Object> parsed = parseKvp(raw); GetFeatureType req = WfsFactory.eINSTANCE.createGetFeatureType(); Object read = reader.read(req, parsed, raw); GetFeatureType parsedReq = (GetFeatureType) read; QueryType query = (QueryType) parsedReq.getQuery().get(0); List<QName> typeNames = query.getTypeName(); assertEquals(1, typeNames.size()); assertEquals(qName, typeNames.get(0)); }
@Test public void testWFSTransaction() throws Exception { TransactionType t = WfsFactory.eINSTANCE.createTransactionType(); org.opengis.filter.Filter f1 = parseFilter("BBOX(the_geom, 40, -90, 45, -60)"); org.opengis.filter.Filter f2 = parseFilter("BBOX(the_geom, 5988504.35,851278.90, 7585113.55,1950872.01)"); UpdateElementType ue = WfsFactory.eINSTANCE.createUpdateElementType(); ue.setTypeName(new QName("http://acme.org", "foo", "acme")); ue.setFilter(f1); t.getUpdate().add(ue); DeleteElementType de = WfsFactory.eINSTANCE.createDeleteElementType(); de.setTypeName(new QName("http://acme.org", "bar", "acme")); de.setFilter(f2); t.getDelete().add(de); Operation op = op("Transaction", "WFS", "1.1.0", t); callback.operationDispatched(new Request(), op); assertEquals("acme:foo", data.getResources().get(0)); assertEquals("acme:bar", data.getResources().get(1)); BoundingBox expected = new ReferencedEnvelope(53.73, 40, -60, -95.1193, CRS.decode("EPSG:4326")); // xMin,yMin -95.1193,40 : xMax,yMax -60,53.73 BBoxAsserts.assertEqualsBbox(expected, data.getBbox(), 0.01); }
@Before public void setupMocks() { deleteElementType1 = WfsFactory.eINSTANCE.createDeleteElementType(); getFeatureType1 = WfsFactory.eINSTANCE.createGetFeatureType(); deleteType2 = Wfs20Factory.eINSTANCE.createDeleteType(); getFeatureType2 = Wfs20Factory.eINSTANCE.createGetFeatureType(); }
/** * Simply returns an instance of {@link DescribeFeatureTypeType} and lets the framework to * reflectively set the object properties. */ public Object parse(ElementInstance instance, Node node, Object value) throws Exception { return wfsFactory.createDescribeFeatureTypeType(); } }
@Test public void testWFSTransactionInsert() throws Exception { TransactionType t = WfsFactory.eINSTANCE.createTransactionType(); InsertElementType ie = WfsFactory.eINSTANCE.createInsertElementType(); t.getInsert().add(ie); // ie.setSrsName(new URI("epsg:4326")); BoundingBox expected = new ReferencedEnvelope(53.73, 40, -60, -95.1193, CRS.decode("EPSG:4326")); SimpleFeatureType ft = createNiceMock(SimpleFeatureType.class); expect(ft.getTypeName()).andReturn("acme:foo").anyTimes(); replay(ft); SimpleFeature f = createNiceMock(SimpleFeature.class); expect(f.getBounds()).andReturn(expected).anyTimes(); expect(f.getType()).andReturn(ft).anyTimes(); replay(f); ie.getFeature().add(f); Operation op = op("Transaction", "WFS", "1.1.0", t); callback.operationDispatched(new Request(), op); assertEquals("acme:foo", data.getResources().get(0)); // xMin,yMin -95.1193,40 : xMax,yMax -60,53.73 BBoxAsserts.assertEqualsBbox(expected, data.getBbox(), 0.01); }
protected InsertElementType createInsert(WfsFactory factory, Insert elem) throws Exception { InsertElementType insert = factory.createInsertElementType(); String srsName = getFeatureTypeInfo(elem.getTypeName()).getDefaultSRS(); insert.setSrsName(new URI(srsName)); List<SimpleFeature> features = elem.getFeatures(); insert.getFeature().addAll(features); return insert; }
@Override public Query createQuery() { return new Query.WFS11(((WfsFactory) getFactory()).createQueryType()); }
final WfsFactory factory = WfsFactory.eINSTANCE; TransactionType tx = factory.createTransactionType(); tx.setService("WFS"); tx.setHandle(request.getHandle());
/** * * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated modifiable */ public Object parse(ElementInstance instance, Node node, Object value) throws Exception { UpdateElementType updateElement = wfsfactory.createUpdateElementType(); // <xsd:element maxOccurs="unbounded" ref="wfs:Property"> updateElement.getProperty().addAll(node.getChildValues(PropertyType.class)); // <xsd:element maxOccurs="1" minOccurs="0" ref="ogc:Filter"> updateElement.setFilter((Filter) node.getChildValue(Filter.class)); // <xsd:attribute name="handle" type="xsd:string" use="optional"> if (node.hasAttribute("handle")) { updateElement.setHandle((String) node.getAttributeValue("handle")); } // <xsd:attribute name="typeName" type="xsd:QName" use="required"> updateElement.setTypeName((QName) node.getAttributeValue("typeName")); // <xsd:attribute default="x-application/gml:3" name="inputFormat" // type="xsd:string" use="optional"> if (node.hasAttribute("inputFormat")) { updateElement.setInputFormat((String) node.getAttributeValue("inputFormat")); } // <xsd:attribute name="srsName" type="xsd:anyURI" use="optional"> if (node.hasAttribute("srsName")) { updateElement.setSrsName((URI) node.getAttributeValue("srsName")); } return updateElement; }
FeatureCollectionType features = WfsFactory.eINSTANCE.createFeatureCollectionType(); GetFeatureType gfreq = WfsFactory.eINSTANCE.createGetFeatureType(); gfreq.setBaseUrl(fInfoReq.getBaseUrl()); QueryType qt = WfsFactory.eINSTANCE.createQueryType();
@Override protected void setUp() throws Exception { // the data source we'll use for the tests dataStore = new PropertyDataStore(new File("./src/test/java/org/geoserver/wfs/response")); // the output format (and let's add a few output formats to play with ogr = new Ogr2OgrOutputFormat(new GeoServerImpl()); ogr.addFormat(new OgrFormat("KML", "OGR-KML", ".kml", true, "application/vnd.google-earth.kml")); ogr.addFormat(new OgrFormat("KML", "OGR-KML-ZIP", ".kml", false, "application/vnd.google-earth.kml")); ogr.addFormat(new OgrFormat("CSV", "OGR-CSV", ".csv", true, "text/csv")); ogr.addFormat(new OgrFormat("SHP", "OGR-SHP", ".shp", false, null)); ogr.addFormat(new OgrFormat("MapInfo File", "OGR-MIF", ".mif", false, null, "-dsco", "FORMAT=MIF")); ogr.setOgrExecutable(Ogr2OgrTestUtil.getOgr2Ogr()); ogr.setGdalData(Ogr2OgrTestUtil.getGdalData()); // the EMF objects used to talk with the output format gft = WfsFactory.eINSTANCE.createGetFeatureType(); fct = WfsFactory.eINSTANCE.createFeatureCollectionType(); op = new Operation("GetFeature", new Service("WFS", null, new Version("1.0.0"), Arrays.asList("GetFeature")), null, new Object[] { gft }); }
/** See https://osgeo-org.atlassian.net/browse/GEOS-1875 */ @SuppressWarnings("unchecked") @Test public void testUserProvidedNamespace() throws Exception { final String localPart = SystemTestData.MLINES.getLocalPart(); final String namespace = SystemTestData.MLINES.getNamespaceURI(); final String alternamePrefix = "ex"; final String alternameTypeName = alternamePrefix + ":" + localPart; Map<String, String> raw = new HashMap<String, String>(); raw.put("service", "WFS"); raw.put("version", "1.1.0"); raw.put("request", "GetFeature"); raw.put("typeName", alternameTypeName); raw.put("namespace", "xmlns(" + alternamePrefix + "=" + namespace + ")"); Map<String, Object> parsed = parseKvp(raw); GetFeatureType req = WfsFactory.eINSTANCE.createGetFeatureType(); Object read = reader.read(req, parsed, raw); GetFeatureType parsedReq = (GetFeatureType) read; QueryType query = (QueryType) parsedReq.getQuery().get(0); List<QName> typeNames = query.getTypeName(); assertEquals(1, typeNames.size()); assertEquals(SystemTestData.MLINES, typeNames.get(0)); }
@Test public void testWFSTransaction() throws Exception { TransactionType t = WfsFactory.eINSTANCE.createTransactionType(); org.opengis.filter.Filter f1 = parseFilter("BBOX(the_geom, 40, -90, 45, -60)"); org.opengis.filter.Filter f2 = parseFilter("BBOX(the_geom, 5988504.35,851278.90, 7585113.55,1950872.01)"); UpdateElementType ue = WfsFactory.eINSTANCE.createUpdateElementType(); ue.setTypeName(new QName("http://acme.org", "foo", "acme")); ue.setFilter(f1); t.getUpdate().add(ue); DeleteElementType de = WfsFactory.eINSTANCE.createDeleteElementType(); de.setTypeName(new QName("http://acme.org", "bar", "acme")); de.setFilter(f2); t.getDelete().add(de); Operation op = op("Transaction", "WFS", "1.1.0", t); callback.operationDispatched(new Request(), op); assertEquals("acme:foo", data.getResources().get(0)); assertEquals("acme:bar", data.getResources().get(1)); BoundingBox expected = new ReferencedEnvelope(53.73,40, -60,-95.1193,CRS.decode("EPSG:4326")); // xMin,yMin -95.1193,40 : xMax,yMax -60,53.73 BBoxAsserts.assertEqualsBbox(expected, data.getBbox(), 0.01); }