/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wfs.xml.v1_1_0; import java.net.URI; import javax.xml.namespace.QName; import net.opengis.wfs.PropertyType; import net.opengis.wfs.UpdateElementType; import net.opengis.wfs.WfsFactory; import org.geotools.xml.AbstractComplexEMFBinding; import org.geotools.xml.ElementInstance; import org.geotools.xml.Node; import org.opengis.filter.Filter; /** * Binding object for the type http://www.opengis.net/wfs:UpdateElementType. * * <p> * <pre> * <code> * <xsd:complexType name="UpdateElementType"> * <xsd:sequence> * <xsd:element maxOccurs="unbounded" ref="wfs:Property"> * <xsd:annotation> * <xsd:documentation> * Changing or updating a feature instance means that * the current value of one or more properties of * the feature are replaced with new values. The Update * element contains one or more Property elements. A * Property element contains the name or a feature property * who's value is to be changed and the replacement value * for that property. * </xsd:documentation> * </xsd:annotation> * </xsd:element> * <xsd:element maxOccurs="1" minOccurs="0" ref="ogc:Filter"> * <xsd:annotation> * <xsd:documentation> * The Filter element is used to constrain the scope * of the update operation to those features identified * by the filter. Feature instances can be specified * explicitly and individually using the identifier of * each feature instance OR a set of features to be * operated on can be identified by specifying spatial * and non-spatial constraints in the filter. * If no filter is specified then update operation * applies to all feature instances. * </xsd:documentation> * </xsd:annotation> * </xsd:element> * </xsd:sequence> * <xsd:attribute name="handle" type="xsd:string" use="optional"> * <xsd:annotation> * <xsd:documentation> * The handle attribute allows a client application * to assign a client-generated request identifier * to an Insert action. The handle is included to * facilitate error reporting. If an Update action * in a Transaction request fails, then a WFS may * include the handle in an exception report to localize * the error. If no handle is included of the offending * Insert element then a WFS may employee other means of * localizing the error (e.g. line number). * </xsd:documentation> * </xsd:annotation> * </xsd:attribute> * <xsd:attribute name="typeName" type="xsd:QName" use="required"> * <xsd:annotation> * <xsd:documentation> * The value of the typeName attribute is the name * of the feature type to be updated. The name * specified must be a valid type that belongs to * the feature content as defined by the GML * Application Schema. * </xsd:documentation> * </xsd:annotation> * </xsd:attribute> * <xsd:attribute default="x-application/gml:3" name="inputFormat" * type="xsd:string" use="optional"> * <xsd:annotation> * <xsd:documentation> * This inputFormat attribute is used to indicate * the format used to encode a feature instance in * an Insert element. The default value of * 'text/xml; subtype=gml/3.1.1' is used to indicate * that feature encoding is GML3. Another example * might be 'text/xml; subtype=gml/2.1.2' indicating * that the feature us encoded in GML2. A WFS must * declare in the capabilities document, using a * Parameter element, which version of GML it supports. * </xsd:documentation> * </xsd:annotation> * </xsd:attribute> * <xsd:attribute name="srsName" type="xsd:anyURI" use="optional"> * <xsd:annotation> * <xsd:documentation> * DO WE NEED THIS HERE? * </xsd:documentation> * </xsd:annotation> * </xsd:attribute> * </xsd:complexType> * * </code> * </pre> * @generated */ public class UpdateElementTypeBinding extends AbstractComplexEMFBinding { WfsFactory wfsfactory; public UpdateElementTypeBinding(WfsFactory wfsfactory) { this.wfsfactory = wfsfactory; } /** * @generated */ public QName getTarget() { return WFS.UPDATEELEMENTTYPE; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated modifiable */ public Class getType() { return null; } /** * <!-- 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; } public Object getProperty(Object arg0, QName arg1) throws Exception { Object result = super.getProperty(arg0, arg1); //System.out.println("Being asked for " + arg1); //System.out.println("Returning " + result); return result; } }