/*
* This is part of Geomajas, a GIS framework, http://www.geomajas.org/.
*
* Copyright 2008-2015 Geosparc nv, http://www.geosparc.com/, Belgium.
*
* The program is available in open source according to the GNU Affero
* General Public License. All contributions in this program are covered
* by the Geomajas Contributors License Agreement. For full licensing
* details, see LICENSE.txt in the project root.
*/
package org.geomajas.gwt2.client.map.feature.query;
import java.util.List;
import org.geomajas.annotation.Api;
import org.geomajas.gwt2.client.map.attribute.AttributeDescriptor;
/**
* Query for feature search.
*
* @author Jan De Moerloose
*
* @since 2.2.1
*/
@Api(allMethods = true)
public interface Query {
/**
* Get the criterion/filter of the query.
*
* @return
*/
Criterion getCriterion();
/**
* Get the list of attribute descriptors.
*
* @return
*/
List<AttributeDescriptor> getAttributeDescriptors();
/**
* Get the crs for the returned feature collection.
*
* @return
*/
String getCrs();
/**
* Get the maximum number of coordinates per geometry for each features. If this maximum is exceeded, the geometry
* will be simplified.
*
* @return
*/
int getMaxCoordsPerFeature();
/**
* Get the requested attribute names. If null, all attributes will be returned.
*
* @return
*/
List<String> getRequestedAttributeNames();
/**
* Get the start index of this query. Can be used for paging.
*
* @return
*/
int getStartIndex();
/**
* Get the maximum number of features to return.
*
* @return
*/
int getMaxFeatures();
}