tx.setService("WFS"); tx.setHandle(request.getHandle()); tx.setVersion(getVersion()); List<InsertElementType> inserts = tx.getInsert(); @SuppressWarnings("unchecked") List<UpdateElementType> updates = tx.getUpdate(); @SuppressWarnings("unchecked") List<DeleteElementType> deletes = tx.getDelete();
@Override public Map getExtendedProperties() { return ((TransactionType) adaptee).getExtendedProperties(); } }
@Override public void setElements(List<TransactionElement> elements) { TransactionType tx = (TransactionType) adaptee; tx.getInsert().clear(); tx.getDelete().clear(); tx.getUpdate().clear(); for (TransactionElement element : elements) { if (element instanceof Insert) { tx.getInsert().add(((Insert) element).getAdaptee()); } else if (element instanceof Update) { tx.getUpdate().add(((Update) element).getAdaptee()); } else if (element instanceof Delete) { tx.getDelete().add(((Delete) element).getAdaptee()); } // no replace in wfs 1.1, cannot be there } }
TransactionType tx = factory.createTransactionType(); tx.setVersion(request.getVersion()); tx.setHandle(request.getHandle()); tx.setLockId(request.getLockId()); tx.setReleaseAction( request.isReleaseActionAll() ? AllSomeType.ALL_LITERAL : AllSomeType.SOME_LITERAL); tx.setBaseUrl(request.getBaseUrl()); tx.setExtendedProperties(request.getExtendedProperties()); tx.getDelete().add(Delete.WFS11.unadapt((Delete) te)); tx.getUpdate().add(Update.WFS11.unadapt((Update) te)); tx.getInsert().add(Insert.WFS11.unadapt((Insert) te)); tx.getNative().add(Native.WFS11.unadapt((Native) te));
transaction.setLockId((String) node.getChildValue("LockId")); transaction.getInsert().add(cv); } else if (cv instanceof UpdateElementType) { transaction.getUpdate().add(cv); } else if (cv instanceof DeleteElementType) { transaction.getDelete().add(cv); } else if (cv instanceof NativeType) { transaction.getNative().add(cv); transaction.setReleaseAction((AllSomeType) node.getAttributeValue(AllSomeType.class));
@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); }
HttpServletRequest request=...; org.geotools.xml.parser.Parser parser = new Parser(new org.geotools.wfs.v1_1.WFSConfigration()); TransactionType tt = (TransactionType) parser.parse(request.getReader()); InsertElementType insert1 = (InsertElementType) tt.getInsert().get(0);
UpdateElementType update = (UpdateElementType) obj.getUpdate().get(0); PropertyType property = (PropertyType) update.getProperty().get(0);
transaction.setLockId((String) node.getChildValue("LockId")); transaction.getInsert().add(cv); } else if (cv instanceof UpdateElementType) { transaction.getUpdate().add(cv); } else if (cv instanceof DeleteElementType) { transaction.getDelete().add(cv); } else if (cv instanceof NativeType) { transaction.getNative().add(cv); transaction.setHandle((String) node.getAttributeValue("handle")); transaction.setReleaseAction((AllSomeType) node.getAttributeValue(AllSomeType.class));
@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); }
@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); }
tx.setService("WFS"); tx.setHandle(request.getHandle()); tx.setVersion(getVersion()); List<InsertElementType> inserts = tx.getInsert(); @SuppressWarnings("unchecked") List<UpdateElementType> updates = tx.getUpdate(); @SuppressWarnings("unchecked") List<DeleteElementType> deletes = tx.getDelete();
@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); }
@SuppressWarnings("unchecked") private Map<String, List<ReferencedEnvelope>> getByLayerDirtyRegions( final TransactionType transaction) { final Map<Object, Object> extendedProperties = transaction.getExtendedProperties(); Map<String, List<ReferencedEnvelope>> byLayerDirtyRegions; byLayerDirtyRegions = (Map<String, List<ReferencedEnvelope>>) extendedProperties .get(GWC_TRANSACTION_INFO_PLACEHOLDER); if (byLayerDirtyRegions == null) { byLayerDirtyRegions = new HashMap<String, List<ReferencedEnvelope>>(); extendedProperties.put(GWC_TRANSACTION_INFO_PLACEHOLDER, byLayerDirtyRegions); } return byLayerDirtyRegions; }
InsertElementType insert = (InsertElementType) obj.getInsert().get(0); SimpleFeature feature = (SimpleFeature) insert.getFeature().get(0); Map<?, ?> attr = (Map<?, ?>) feature.getAttribute("descr");
public void testAfterTransaction() throws Exception { Map<Object, Object> extendedProperties = new HashMap<Object, Object>(); ReferencedEnvelope affectedBounds1 = new ReferencedEnvelope(-180, 0, 0, 90, WGS84); ReferencedEnvelope affectedBounds2 = new ReferencedEnvelope(0, 180, 0, 90, WGS84); issueInsert(extendedProperties, affectedBounds1); issueInsert(extendedProperties, affectedBounds2); TransactionType request = mock(TransactionType.class); TransactionResponseType result = mock(TransactionResponseType.class); when(request.getExtendedProperties()).thenReturn(extendedProperties); when(mediator.getDeclaredCrs(anyString())).thenReturn(WGS84); listener.afterTransaction(request, result, true); ReferencedEnvelope expectedEnv = new ReferencedEnvelope(affectedBounds1); expectedEnv.expandToInclude(affectedBounds2); verify(mediator, times(1)).truncate(eq("theLayer"), eq(expectedEnv)); verify(mediator, times(1)).truncate(eq("theGroup"), eq(expectedEnv)); }
when(transaction.getExtendedProperties()).thenReturn(extendedProperties);
(TransactionDetail) t.getExtendedProperties().get(TransactionDetail.class); assertNotNull(detail);