/* * Geotoolkit.org - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2005-2012, Open Source Geospatial Foundation (OSGeo) * (C) 2007-2012, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library 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 * Lesser General Public License for more details. */ package org.geotoolkit.coverage.sql; import org.geotoolkit.internal.sql.table.Query; import org.geotoolkit.internal.sql.table.Column; import org.geotoolkit.internal.sql.table.Database; import org.geotoolkit.internal.sql.table.Parameter; import org.geotoolkit.internal.sql.table.QueryType; import static org.geotoolkit.internal.sql.table.QueryType.*; /** * The query to execute for a {@link GridGeometryTable}. * * @author Martin Desruisseaux (IRD, Geomatys) * @version 3.10 * * @since 3.10 (derived from Seagis) * @module */ final class GridGeometryQuery extends Query { /** * Column to appear after the {@code "SELECT"} clause. */ final Column identifier, width, height, scaleX, shearY, shearX, scaleY, translateX, translateY, horizontalSRID, verticalSRID, verticalOrdinates; /** * Parameter to appear after the {@code "FROM"} clause. */ final Parameter byIdentifier, byWidth, byHeight, byScaleX, byShearY, byShearX, byScaleY, byTranslateX, byTranslateY, byHorizontalSRID; /** * Creates a new query for the specified database. * * @param database The database for which this query is created. */ public GridGeometryQuery(final Database database) { super(database, "GridGeometries"); final QueryType[] lse = {LIST, SELECT, EXISTS }; final QueryType[] lsi = {LIST, SELECT, INSERT}; final QueryType[] si = { SELECT, INSERT}; final QueryType[] select = { SELECT, EXISTS, DELETE}; final QueryType[] list = {LIST }; identifier = addMandatoryColumn("identifier", lse); width = addMandatoryColumn("width", si); height = addMandatoryColumn("height", si); scaleX = addMandatoryColumn("scaleX", si); shearY = addOptionalColumn ("shearY", 0, si); shearX = addOptionalColumn ("shearX", 0, si); scaleY = addMandatoryColumn("scaleY", si); translateX = addMandatoryColumn("translateX", si); translateY = addMandatoryColumn("translateY", si); horizontalSRID = addMandatoryColumn("horizontalSRID", si); verticalSRID = addOptionalColumn ("verticalSRID", null, lsi); verticalOrdinates = addOptionalColumn ("verticalOrdinates", null, lsi); byIdentifier = addParameter(identifier, select); byWidth = addParameter(width, list); byHeight = addParameter(height, list); byScaleX = addParameter(scaleX, list); byShearY = addParameter(shearY, list); byShearX = addParameter(shearX, list); byScaleY = addParameter(scaleY, list); byTranslateX = addParameter(translateX, list); byTranslateY = addParameter(translateY, list); byHorizontalSRID = addParameter(horizontalSRID, list); } }