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; }
/** * * <!-- 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; }
@Override public Update createUpdate() { WfsFactory factory = (WfsFactory) getFactory(); return new Update.WFS11(factory.createUpdateElementType()); }
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; }
public static UpdateElementType unadapt(Update update) { if (update instanceof WFS11) { return (UpdateElementType) update.getAdaptee(); } UpdateElementType ue = WfsFactory.eINSTANCE.createUpdateElementType(); ue.setHandle(update.getHandle()); ue.setTypeName(update.getTypeName()); ue.setFilter(update.getFilter()); for (Property p : update.getUpdateProperties()) { ue.getProperty().add(Property.WFS11.unadapt(p)); } return ue; } }
final UpdateElementType update = WfsFactory.eINSTANCE.createUpdateElementType(); final EList properties = update.getProperty();
/** * * <!-- 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")); return updateElement; }
@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 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); }
/** * * <!-- 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; }