/* (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 javax.xml.namespace.QName;
import net.opengis.wfs20.ListStoredQueriesResponseType;
import net.opengis.wfs20.ListStoredQueriesType;
import net.opengis.wfs20.StoredQueryListItemType;
import net.opengis.wfs20.TitleType;
import net.opengis.wfs20.Wfs20Factory;
/**
* Web Feature Service ListStoredQueries operation.
*
* @author Justin Deoliveira, OpenGeo
*
* @version $Id$
*/
public class ListStoredQueries {
/** service config */
WFSInfo wfs;
/** stored query provider */
StoredQueryProvider storedQueryProvider;
public ListStoredQueries(WFSInfo wfs, StoredQueryProvider storedQueryProvider) {
this.wfs = wfs;
this.storedQueryProvider = storedQueryProvider;
}
public ListStoredQueriesResponseType run(ListStoredQueriesType request) throws WFSException {
Wfs20Factory factory = Wfs20Factory.eINSTANCE;
ListStoredQueriesResponseType response = factory.createListStoredQueriesResponseType();
for (StoredQuery sq : storedQueryProvider.listStoredQueries()) {
StoredQueryListItemType item = factory.createStoredQueryListItemType();
item.setId(sq.getName());
TitleType title = factory.createTitleType();
title.setValue(sq.getTitle());
item.getTitle().add(title);
if (!sq.getFeatureTypes().isEmpty()) {
item.getReturnFeatureType().addAll(sq.getFeatureTypes());
}
else {
item.getReturnFeatureType().add(new QName(""));
}
response.getStoredQuery().add(item);
}
return response;
}
}