Blame view

src/main/java/eu/omp/irap/vespa/epntapclient/EpnTapInterface.java 4.82 KB
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*
 * 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/>.
 */

5e72363b   Nathanael Jourdane   Change project ar...
17
package eu.omp.irap.vespa.epntapclient;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
18
19

import java.util.List;
7191e325   Nathanael Jourdane   Implement VOResou...
20
import java.util.Map;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
21

cfbb6d07   Nathanael Jourdane   Implement most of...
22
23
import eu.omp.irap.vespa.epntapclient.granule.Granule;
import eu.omp.irap.vespa.epntapclient.voresource.VOResourceException;
bfe5db3a   Nathanael Jourdane   rename epnTapLib ...
24
import eu.omp.irap.vespa.epntapclient.voresource.model.Resource;
cfbb6d07   Nathanael Jourdane   Implement most of...
25
26
import eu.omp.irap.vespa.epntapclient.votable.model.VOTABLE;
import eu.omp.irap.vespa.votable.controller.CantGetVOTableException;
bfe5db3a   Nathanael Jourdane   rename epnTapLib ...
27

19c409d4   Nathanael Jourdane   Add the EPNTAP in...
28
29
30
/**
 * @author N. Jourdane
 */
bfe5db3a   Nathanael Jourdane   rename epnTapLib ...
31
public interface EpnTapInterface {
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
32

cfbb6d07   Nathanael Jourdane   Implement most of...
33
34
35
36
37
38
39
	// *** Resource ***

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

	// *** Resources ***

19c409d4   Nathanael Jourdane   Add the EPNTAP in...
40
	/** returns a set of VOResource elements (one per EPN-TAP service) */
cfbb6d07   Nathanael Jourdane   Implement most of...
41
	public List<Resource> getEPNVOResources() throws VOResourceException;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
42
43

	/**
bfe5db3a   Nathanael Jourdane   rename epnTapLib ...
44
45
	 * 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.
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
46
	 */
cfbb6d07   Nathanael Jourdane   Implement most of...
47
48
	public List<Resource> getEPNVOResources(Map<String, String> keywords)
			throws VOResourceException;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
49

cfbb6d07   Nathanael Jourdane   Implement most of...
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
	// *** Service ***

	/**
	 * returns a VOTable containing the attributes of the corresponding service (from a predefined
	 * list)
	 *
	 * @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 CantGetXMLException
	 * @throws CantDisplayVOTableException
	 */
	public VOTABLE getEPNService(String ivoID, List<String> attributes)
			throws CantGetVOTableException;

	// *** Services ***
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
73
74
75
76

	/**
	 * returns a VOTable containing the list of EPN-TAP services and their attributes (from a
	 * predefined list)
cfbb6d07   Nathanael Jourdane   Implement most of...
77
78
79
	 *
	 * @throws CantGetXMLException
	 * @throws CantDisplayVOTableException
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
80
	 */
4b3a296c   Nathanael Jourdane   Implement getServ...
81
	public List<VOTABLE> getEPNServices() throws CantGetVOTableException, VOResourceException;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
82
83
84
85

	/**
	 * returns a VOTable containing the list of EPN-TAP services and their attributes (from the list
	 * of attributes)
cfbb6d07   Nathanael Jourdane   Implement most of...
86
87
88
	 *
	 * @throws CantGetXMLException
	 * @throws CantDisplayVOTableException
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
89
	 */
4b3a296c   Nathanael Jourdane   Implement getServ...
90
91
	public List<VOTABLE> getEPNServices(List<String> attributes)
			throws CantGetVOTableException, VOResourceException;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
92
93
94
95

	/**
	 * returns a VOTable containing the list of EPN-TAP services corresponding to the keywords and
	 * their attributes (from the list of attributes)
cfbb6d07   Nathanael Jourdane   Implement most of...
96
97
98
	 *
	 * @throws CantGetXMLException
	 * @throws CantDisplayVOTableException
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
99
	 */
4b3a296c   Nathanael Jourdane   Implement getServ...
100
101
	public List<VOTABLE> getEPNServices(Map<String, String> keywords, List<String> attributes)
			throws CantGetVOTableException, VOResourceException;
cfbb6d07   Nathanael Jourdane   Implement most of...
102
103

	// *** Getters ***
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
104
105

	/**
cfbb6d07   Nathanael Jourdane   Implement most of...
106
107
108
109
	 * returns the name of the EPNCore Table related to a service.
	 *
	 * @throws CantGetXMLException
	 * @throws CantDisplayVOTableException
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
110
	 */
cfbb6d07   Nathanael Jourdane   Implement most of...
111
	public String getEPNCoreTableName(String ivoid) throws CantGetVOTableException;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
112
113

	/**
cfbb6d07   Nathanael Jourdane   Implement most of...
114
115
116
117
	 * returns the Access URL of an EPN-TAP Service.
	 *
	 * @throws CantGetXMLException
	 * @throws CantDisplayVOTableException
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
118
	 */
cfbb6d07   Nathanael Jourdane   Implement most of...
119
	public String getTAPURL(String ivoid) throws CantGetVOTableException;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
120

cfbb6d07   Nathanael Jourdane   Implement most of...
121
	// *** Queries ***
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
122
123
124
125
126

	/**
	 * 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.
cfbb6d07   Nathanael Jourdane   Implement most of...
127
128
129
	 *
	 * @throws CantGetXMLException
	 * @throws CantDisplayVOTableException
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
130
	 */
cfbb6d07   Nathanael Jourdane   Implement most of...
131
132
	public List<Granule> sendADQLQuery(String tapURL, String adqlQuery)
			throws CantGetVOTableException;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
133
134
135
136
137
138

	/**
	 * 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.
	 */
cfbb6d07   Nathanael Jourdane   Implement most of...
139
	public List<Granule> sendQuery(String tapURL, String schemaName, String query);
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
140
}