/* * This file is a part of EpnTAPClient. * This program aims to provide EPN-TAP support for software clients, like CASSIS spectrum analyzer. * See draft specifications: https://voparis-confluence.obspm.fr/pages/viewpage.action?pageId=559861 * Copyright (C) 2016 Institut de Recherche en Astrophysique et Planétologie. * * 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 * . */ package eu.omp.irap.vespa.epntapclient.service; /** * Defines the queries and the query patterns usually used in the application. * * @author N. Jourdane */ public final class Queries { /** * The default SELECT keyword content of the query, which select standard service column names. */ private static final String SELECT_SERVICE = "SELECT DISTINCT ivoid, access_url, res_title, " + "short_name, table_name, content_type, res_description, creator_seq, content_level, " + "reference_url, created, updated "; /** The default SELECT keyword */ private static final String SELECT = "SELECT DISTINCT "; /** The default FROM keyword content of the query, which links all required tables. */ private static final String FROM = "FROM rr.resource " + "NATURAL JOIN rr.res_schema " + "NATURAL JOIN rr.res_table " + "NATURAL JOIN rr.interface " + "NATURAL JOIN rr.res_detail " + "NATURAL JOIN rr.capability "; /** The default ORDER BY keyword content of the query. */ private static final String ORDER_BY = "ORDER BY short_name, table_name"; /** The default WHERE keyword content of the query, in order to get only TAP services. */ private static final String WHERE_TAP = "WHERE " + "standard_id='ivo://ivoa.net/std/tap' AND " + "intf_type='vs:paramhttp' AND " + "detail_xpath='/capability/dataModel/@ivo-id' "; //@noformat /** Query to get all TAP services. */ public static final String SELECT_ALL_TAP_SERVICES = SELECT_SERVICE + FROM + WHERE_TAP + ORDER_BY; /** Query to get the specified columns (%s #1) of all TAP services. */ public static final String SELECT_TAP_SERVICES = SELECT + "%s " + FROM + WHERE_TAP; /** Query to get TAP services which implement the specified core (%s #1). */ public static final String SELECT_ALL_TAP_SERVICES_WHERE_CORE = SELECT_SERVICE + FROM + WHERE_TAP + "AND 1=ivo_nocasematch(detail_value, 'ivo://vopdc.obspm/std/%s%%') " + ORDER_BY; /** Query to get the TAP service with the specified ivoid (%s #1). */ public static final String SELECT_ALL_TAP_SERVICES_WHERE_IVOID = SELECT_SERVICE + FROM + WHERE_TAP + "AND ivoid = '%s'"; /** Query to get the specified column names (%s #1) of TAP service with the specified ivoid (%s #2). */ public static final String SELECT_TAP_SERVICES_WHERE_IVOID = SELECT + "%s " + FROM + WHERE_TAP + "AND ivoid = '%s'"; /** Query to get the specified column names (%s #1) of TAP service with the specified subject (%s #2). */ public static final String SELECT_TAP_SERVICES_WHERE_SUBJECT = SELECT + "%s " + FROM + "NATURAL JOIN rr.res_subject " + WHERE_TAP + "AND (%s)"; /** Query to get the specified column names (%s #1) of any table. */ public static final String SELECT_FROM = SELECT + "%s FROM %s"; /** Query to select all columns of any table. */ public static final String SELECT_ALL = "SELECT DISTINCT * FROM %s"; //@format /** Constructor to hide the implicit public one. */ private Queries() { } }