/* (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.wcs.kvp; import java.util.Map; import net.opengis.ows11.AcceptVersionsType; import net.opengis.ows11.Ows11Factory; import net.opengis.wcs11.GetCapabilitiesType; import net.opengis.wcs11.Wcs111Factory; import org.eclipse.emf.ecore.EObject; import org.geoserver.ows.kvp.EMFKvpRequestReader; /** * Parses a GetCapabilities request for WCS into the correspondent model object * * @author Andrea Aime - TOPP * */ public class WcsGetCapabilitiesRequestReader extends EMFKvpRequestReader { public WcsGetCapabilitiesRequestReader() { super(GetCapabilitiesType.class, Wcs111Factory.eINSTANCE); } public Object read(Object request, Map kvp, Map rawKvp) throws Exception { // make sure we get the right accepts versions param -> workaround for GEOS-1719 if(rawKvp.containsKey("acceptVersions")) { AcceptVersionsKvpParser avp = new AcceptVersionsKvpParser(); AcceptVersionsType avt = (AcceptVersionsType) avp.parse((String) rawKvp.get("acceptVersions")); kvp.put("acceptVersions", avt); } // make sure we get the right Sections-Type param -> workaround for GEOS-6807 if(rawKvp.containsKey("sections")){ SectionsKvpParser parser = new SectionsKvpParser(); String value = (String) rawKvp.get("sections"); EObject sections = (EObject) parser.parse(value); kvp.put("sections", sections); } request = super.read(request, kvp, rawKvp); return request; } }