Package org.geoserver.wfs

Source Code of org.geoserver.wfs.DescribeStoredQueries

/* (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;

import java.net.URI;
import java.util.List;

import net.opengis.wfs20.DescribeStoredQueriesResponseType;
import net.opengis.wfs20.DescribeStoredQueriesType;
import net.opengis.wfs20.Wfs20Factory;

import org.geoserver.platform.GeoServerExtensions;

/**
* Web Feature Service DescribeStoredQueries operation.
*
* @author Justin Deoliveira, OpenGeo
*
* @version $Id$
*/
public class DescribeStoredQueries {

    /** service config */
    WFSInfo wfs;
   
    /** stored query provider */
    StoredQueryProvider storedQueryProvider;
   
    public DescribeStoredQueries(WFSInfo wfs, StoredQueryProvider storedQueryProvider) {
        this.wfs = wfs;
        this.storedQueryProvider = storedQueryProvider;
    }
   
    public DescribeStoredQueriesResponseType run(DescribeStoredQueriesType request) throws WFSException {
       
        Wfs20Factory factory = Wfs20Factory.eINSTANCE;
        DescribeStoredQueriesResponseType response =
            factory.createDescribeStoredQueriesResponseType();
       
        List<StoredQueryProvider> providers =
            GeoServerExtensions.extensions(StoredQueryProvider.class);
       
        if (request.getStoredQueryId().isEmpty()) {
            for (StoredQuery query : storedQueryProvider.listStoredQueries()) {
                describeStoredQuery(query, response);
            }
        }
        else {
            for (URI id : request.getStoredQueryId()) {
                StoredQuery query = storedQueryProvider.getStoredQuery(id.toString());
                if (query == null) {
                    throw new WFSException(request, "No such stored query: " + id, "InvalidParameterValue");
                }

                describeStoredQuery(query, response);
            }
        }

        return response;
    }
   
    void describeStoredQuery(StoredQuery query, DescribeStoredQueriesResponseType response) {
        response.getStoredQueryDescription().add(query.getQuery());
    }
}
TOP

Related Classes of org.geoserver.wfs.DescribeStoredQueries

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.