EpnTapInterface.java 3.55 KB
/*
 * 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
 * <http://www.gnu.org/licenses/>.
 */

package eu.omp.irap.vespa.epntapclient.lib;

import java.util.List;
import java.util.Map;

import eu.omp.irap.vespa.epntapclient.lib.resource.VOResourceException;
import eu.omp.irap.vespa.epntapclient.service.Service;
import eu.omp.irap.vespa.epntapclient.voresource.model.Resource;

/**
 * @author N. Jourdane
 */
public interface EpnTapInterface {

	/** returns a set of VOResource elements (one per EPN-TAP service) */
	List<Resource> getEPNVOResources(Service.ServiceType serviceType)
			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.
	 */
	List<Resource> getEPNVOResources(Service.ServiceType serviceType,
			Map<String, String> keywords) throws VOResourceException;

	/** returns the VOResource element of the service identified by the ivoID. */
	Resource getEPNVOresource(String ivoid) throws VOResourceException;

	/**
	 * returns a VOTable containing the list of EPN-TAP services and their attributes (from a
	 * predefined list)
	 */
	void getEPNServices();

	/**
	 * returns a VOTable containing the list of EPN-TAP services and their attributes (from the list
	 * of attributes)
	 */
	void getEPNServices(List<String> attributes);

	/**
	 * returns a VOTable containing the list of EPN-TAP services corresponding to the keywords and
	 * their attributes (from the list of attributes)
	 */
	void getEPNServices(List<String> keywords, List<String> attributes);

	/**
	 * returns a VOTable containing the attributes of the corresponding service (from a predefined
	 * list)
	 */
	void getEPNService(String ivoID);

	/**
	 * returns a VOTable containing the attributes of the corresponding service (from the list of
	 * attributes)
	 */
	void getEPNService(String ivoID, List<String> attributes);

	/** returns the name of the EPNCore Table related to a service. */
	void getEPNCoreTableName(String service_ivoid);

	/** returns the Access URL of an EPN-TAP Service. */
	void getTAPURL(String service_ivoid);

	/**
	 * 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.
	 */
	void sendADQLQuery(String TAPURL, String ADQLQuery);

	/**
	 * 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.
	 */
	void sendQuery(String TAPURL, String schema_name, String Query);
}