/** * geo-platform * Rich webgis framework * http://geo-platform.org * ==================================================================== * <p> * Copyright (C) 2008-2017 geoSDI Group (CNR IMAA - Potenza - ITALY). * <p> * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. This program is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU General Public License * for more details. You should have received a copy of the GNU General * Public License along with this program. If not, see http://www.gnu.org/licenses/ * <p> * ==================================================================== * <p> * Linking this library statically or dynamically with other modules is * making a combined work based on this library. Thus, the terms and * conditions of the GNU General Public License cover the whole combination. * <p> * As a special exception, the copyright holders of this library give you permission * to link this library with independent modules to produce an executable, regardless * of the license terms of these independent modules, and to copy and distribute * the resulting executable under terms of your choice, provided that you also meet, * for each linked independent module, the terms and conditions of the license of * that module. An independent module is a module which is not derived from or * based on this library. If you modify this library, you may extend this exception * to your version of the library, but you are not obligated to do so. If you do not * wish to do so, delete this exception statement from your version. */ package org.geosdi.geoplatform.connector.server.request; import org.geosdi.geoplatform.connector.server.GPServerConnector; import org.geosdi.geoplatform.connector.wfs.response.QueryDTO; import org.geosdi.geoplatform.gui.shared.bean.BBox; import org.geosdi.geoplatform.xml.wfs.v110.QueryType; import javax.xml.namespace.QName; import java.math.BigInteger; import java.util.List; /** * @author Vincenzo Monteverde <vincenzo.monteverde@geosdi.org> */ public abstract class AbstractGetFeatureRequest<T> extends WFSRequest<T> implements WFSGetFeatureRequest<T> { private static final String NAME_GEOMETRY = "the_geom"; // TODO name property geometry is always "the_geom"? // protected QName typeName; protected List<String> featureIDs; protected List<String> propertyNames; protected BBox bBox; protected String srs; protected String resultType; protected String outputFormat; protected BigInteger maxFeatures; protected QueryDTO queryDTO; private String geometryName; public AbstractGetFeatureRequest(GPServerConnector server) { super(server); } @Override public QName getTypeName() { return typeName; } @Override public void setTypeName(QName typeName) { this.typeName = typeName; } @Override public List<String> getFeatureIDs() { return featureIDs; } @Override public void setFeatureIDs(List<String> featureIDs) { this.featureIDs = featureIDs; } /** * @return {@link Boolean} */ @Override public Boolean isSetFeatureIDs() { return ((this.featureIDs != null) && !(this.featureIDs.isEmpty())); } /** * <p>The Property Names to retrieve in {@link QueryType} query</p> * * @param propertyNames */ @Override public void setPropertyNames(List<String> propertyNames) { this.propertyNames = propertyNames; } /** * @return {@link List <String>} Property Names */ @Override public List<String> getPropertyNames() { return this.propertyNames; } /** * @return {@link Boolean} */ @Override public Boolean isSetPropertyNames() { return ((this.propertyNames != null) && !(this.propertyNames.isEmpty())); } @Override public BBox getBBox() { return bBox; } @Override public void setBBox(BBox bBox) { this.bBox = bBox; } /** * @return {@link String} */ @Override public String getGeometryName() { return (isSetGeometryName() ? this.geometryName : NAME_GEOMETRY); } /** * @param theGeometryName */ @Override public void setGeometryName(String theGeometryName) { this.geometryName = theGeometryName; } /** * @return {@link Boolean} */ @Override public Boolean isSetGeometryName() { return ((this.geometryName != null) && !(this.geometryName.isEmpty())); } @Override public String getSRS() { return srs; } @Override public void setSRS(String srs) { this.srs = srs; } @Override public String getResultType() { return resultType; } @Override public void setResultType(String resultType) { this.resultType = resultType; } @Override public String getOutputFormat() { return outputFormat; } @Override public void setOutputFormat(String outputFormat) { this.outputFormat = outputFormat; } @Override public BigInteger getMaxFeatures() { return maxFeatures; } @Override public void setMaxFeatures(BigInteger maxFeatures) { this.maxFeatures = maxFeatures; } /** * <p>{@link QueryDTO} class contains all Restrictions for Attributes</p> * * @param queryDTO */ @Override public void setQueryDTO(QueryDTO queryDTO) { this.queryDTO = queryDTO; } /** * @return {@link QueryDTO} */ @Override public QueryDTO getQueryDTO() { return this.queryDTO; } /** * @return {@link Boolean} */ @Override public Boolean isSetQueryDTO() { return ((this.queryDTO != null) && (this.queryDTO.isSetQueryRestrictionList())); } @Override public String toString() { return this.getClass() .getSimpleName() + " {" + " typeName = " + typeName + ", featureIDs = " + featureIDs + ", bBox = " + bBox + ", srs = '" + srs + '\'' + ", resultType = '" + resultType + '\'' + ", outputFormat = '" + outputFormat + '\'' + ", maxFeatures = " + maxFeatures + ", queryDTO = " + queryDTO + '}'; } }