Blame view

src/main/java/eu/omp/irap/vespa/epntapclient/EpnTapInterface.java 4.87 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;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
20

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

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

cfbb6d07   Nathanael Jourdane   Implement most of...
32
33
34
35
36
37
38
	// *** 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...
39
	/** returns a set of VOResource elements (one per EPN-TAP service) */
cfbb6d07   Nathanael Jourdane   Implement most of...
40
	public List<Resource> getEPNVOResources() throws VOResourceException;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
41
42

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

cfbb6d07   Nathanael Jourdane   Implement most of...
49
50
51
52
53
54
	// *** Service ***

	/**
	 * returns a VOTable containing the attributes of the corresponding service (from a predefined
	 * list)
	 *
35daa117   Nathanael Jourdane   Improve JUnits te...
55
56
	 * @throws VOResourceException
	 * @throws CantGetVOTableException
cfbb6d07   Nathanael Jourdane   Implement most of...
57
58
59
60
61
62
63
64
65
66
	 * @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)
	 *
35daa117   Nathanael Jourdane   Improve JUnits te...
67
68
	 * @throws VOResourceException
	 * @throws CantGetVOTableException
cfbb6d07   Nathanael Jourdane   Implement most of...
69
70
71
72
73
74
75
	 * @throws CantGetXMLException
	 * @throws CantDisplayVOTableException
	 */
	public VOTABLE getEPNService(String ivoID, List<String> attributes)
			throws CantGetVOTableException;

	// *** Services ***
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
76
77
78
79

	/**
	 * returns a VOTable containing the list of EPN-TAP services and their attributes (from a
	 * predefined list)
cfbb6d07   Nathanael Jourdane   Implement most of...
80
81
82
	 *
	 * @throws CantGetXMLException
	 * @throws CantDisplayVOTableException
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
83
	 */
35daa117   Nathanael Jourdane   Improve JUnits te...
84
	public VOTABLE getEPNServices() throws CantGetVOTableException;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
85
86
87
88

	/**
	 * returns a VOTable containing the list of EPN-TAP services and their attributes (from the list
	 * of attributes)
cfbb6d07   Nathanael Jourdane   Implement most of...
89
90
91
	 *
	 * @throws CantGetXMLException
	 * @throws CantDisplayVOTableException
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
92
	 */
35daa117   Nathanael Jourdane   Improve JUnits te...
93
	public VOTABLE getEPNServices(List<String> attributes) throws CantGetVOTableException;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
94
95
96
97

	/**
	 * 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...
98
99
100
	 *
	 * @throws CantGetXMLException
	 * @throws CantDisplayVOTableException
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
101
	 */
35daa117   Nathanael Jourdane   Improve JUnits te...
102
103
	public VOTABLE getEPNServices(List<String> keywords, List<String> attributes)
			throws CantGetVOTableException;
cfbb6d07   Nathanael Jourdane   Implement most of...
104
105

	// *** Getters ***
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
106
107

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

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

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

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

	/**
	 * 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.
	 */
125adfc1   Nathanael Jourdane   Use enumerated qu...
141
142
	public List<Granule> sendQuery(String tapURL, String schemaName, Query query)
			throws CantGetVOTableException;
19c409d4   Nathanael Jourdane   Add the EPNTAP in...
143
}