/* * 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; import java.util.List; import eu.omp.irap.vespa.epntapclient.granule.Granule; import eu.omp.irap.vespa.epntapclient.voresource.VOResourceException; import eu.omp.irap.vespa.epntapclient.voresource.model.Resource; import eu.omp.irap.vespa.epntapclient.votable.model.VOTABLE; import eu.omp.irap.vespa.votable.controller.CantGetVOTableException; /** * @author N. Jourdane */ public interface EpnTapInterface { // *** Resource *** /** returns the VOResource element of the service identified by the ivoID. */ public Resource getEPNVOresource(String ivoid) throws VOResourceException; // *** Resources *** /** returns a set of VOResource elements (one per EPN-TAP service) */ public List getEPNVOResources() throws VOResourceException; /** * Returns a set of VOREsource elements (one per EPN-TAP service corresponding to the keywords). * The way keywords are defined is still to be defined. */ public List getEPNVOResources(List keywords) throws VOResourceException; // *** Service *** /** * returns a VOTable containing the attributes of the corresponding service (from a predefined * list) * * @throws VOResourceException * @throws CantGetVOTableException * @throws IllegalAccessException * @throws CantGetXMLException * @throws CantDisplayVOTableException */ public VOTABLE getEPNService(String ivoID) throws CantGetVOTableException; /** * returns a VOTable containing the attributes of the corresponding service (from the list of * attributes) * * @throws VOResourceException * @throws CantGetVOTableException * @throws CantGetXMLException * @throws CantDisplayVOTableException */ public VOTABLE getEPNService(String ivoID, List attributes) throws CantGetVOTableException; // *** Services *** /** * returns a VOTable containing the list of EPN-TAP services and their attributes (from a * predefined list) * * @throws CantGetXMLException * @throws CantDisplayVOTableException */ public VOTABLE getEPNServices() throws CantGetVOTableException; /** * returns a VOTable containing the list of EPN-TAP services and their attributes (from the list * of attributes) * * @throws CantGetXMLException * @throws CantDisplayVOTableException */ public VOTABLE getEPNServices(List attributes) throws CantGetVOTableException; /** * returns a VOTable containing the list of EPN-TAP services corresponding to the keywords and * their attributes (from the list of attributes) * * @throws CantGetXMLException * @throws CantDisplayVOTableException */ public VOTABLE getEPNServices(List keywords, List attributes) throws CantGetVOTableException; // *** Getters *** /** * returns the name of the EPNCore Table related to a service. * * @throws CantGetXMLException * @throws CantDisplayVOTableException */ public String getEPNCoreTableName(String ivoid) throws CantGetVOTableException; /** * returns the Access URL of an EPN-TAP Service. * * @throws CantGetXMLException * @throws CantDisplayVOTableException */ public String getTAPURL(String ivoid) throws CantGetVOTableException; // *** Queries *** /** * returns the list of granules which are compliant with the ADQL Query, in VOTable format . * TAPURL is build from elements taken in VOResource. "ADQLQuery" is created by the Client. It * is a full query containing the name of the EPNCore table, taken in VOResource. * * @throws CantGetXMLException * @throws CantDisplayVOTableException */ public List sendADQLQuery(String tapURL, String adqlQuery) throws CantGetVOTableException; /** * returns the list of granules which are compliant with the Query, in VOTable format. "Query" * is not an ADQL query. It is taken from a list of predefined queries. This list must be * created. */ public List sendQuery(String tapURL, String schemaName, String query); }