package org.geotools.wfs.v1_0;
import java.math.BigInteger;
import java.util.Arrays;
import java.util.List;
import javax.xml.namespace.QName;
import net.opengis.ows10.DCPType;
import net.opengis.ows10.HTTPType;
import net.opengis.ows10.Ows10Factory;
import net.opengis.ows10.RequestMethodType;
import net.opengis.ows10.WGS84BoundingBoxType;
import org.geotools.xml.AbstractComplexEMFBinding;
import org.geotools.xml.ElementInstance;
import org.geotools.xml.Node;
public class DCPTypeBinding extends AbstractComplexEMFBinding {
@Override
public QName getTarget() {
return WFSCapabilities.DCPType;
}
@SuppressWarnings("rawtypes")
@Override
public Class getType() {
return DCPType.class;
}
@SuppressWarnings("unchecked")
@Override
public Object parse(ElementInstance instance, Node node, Object value) throws Exception {
Ows10Factory ows10Factory = Ows10Factory.eINSTANCE;
DCPType dcpType = ows10Factory.createDCPType();
HTTPType httpType = ows10Factory.createHTTPType();
dcpType.setHTTP(httpType);
List<Node> httpChildren = node.getChildren("HTTP");
for (Node http : httpChildren) {
Node get = http.getChild("Get");
if (get != null) {
RequestMethodType methodType = createRequestMethodType(ows10Factory, get);
httpType.getGet().add(methodType);
}
Node post = http.getChild("Post");
if (post != null) {
RequestMethodType methodType = createRequestMethodType(ows10Factory, post);
httpType.getPost().add(methodType);
}
}
return dcpType;
}
private RequestMethodType createRequestMethodType(Ows10Factory ows10Factory, Node getOrPostNode) {
RequestMethodType methodType = ows10Factory.createRequestMethodType();
String href = (String) getOrPostNode.getAttributeValue("onlineResource");
methodType.setHref(href);
return methodType;
}
}