/*
* 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.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import eu.omp.irap.vespa.epntapclient.granule.Granule;
import eu.omp.irap.vespa.epntapclient.voresource.VOResourceCtrl;
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;
import eu.omp.irap.vespa.votable.utils.Debug;
import eu.omp.irap.vespa.votable.utils.StringJoiner;
/**
* @author N. Jourdane
*/
public class TestEpnTapFacade {
/** The logger for the class Main. */
private static final Logger logger = Logger.getLogger(TestEpnTapFacade.class.getName());
private static final String TEST_SERVICE_IVOID = "ivo://cdpp/amda";
private static final String TEST_SERVICE_URL = "http://voparis-tap-planeto.obspm.fr/__system__/tap/run/tap";
private static final String TEST_RESOURCE_IVOID = "ivo://vopdc.obspm/lesia/basecom/epn";
private static final String TEST_ADQL_QUERY = "SELECT TOP 1 * FROM planets.epn_core";
private static final String TEST_SCHEMA_NAME = "epn_core";
public static void main(String[] args) {
EpnTapFacade facade = new EpnTapFacade();
final List SERVICE_ATTRIBUTES = new ArrayList<>();
SERVICE_ATTRIBUTES.add("target_name");
SERVICE_ATTRIBUTES.add("time_min");
SERVICE_ATTRIBUTES.add("time_max");
String strServiceAttributes = "[" + StringJoiner.join(SERVICE_ATTRIBUTES) + "]";
final Map KEYWORDS = new HashMap<>();
KEYWORDS.put("shortName", "IKS");
String strKeywords = "[shortName=IKS]";
try {
System.out.println("\n*** 1. Resource ***\n");
Resource resource = VOResourceCtrl.getVOresource(TEST_RESOURCE_IVOID);
System.out.println("1.1 getVOresource(\"" + TEST_RESOURCE_IVOID + "\")\n\t"
+ Debug.toJson(resource));
System.out.println("\n*** 2. Resources ***\n");
List resources = facade.getEPNVOResources();
System.out.println("2.1 getEPNVOResources()\n\t"
+ Debug.toJson(resources));
List resources2 = facade.getEPNVOResources(KEYWORDS);
System.out.println("2.2 getEPNVOResources(" + strKeywords + ")\n\t"
+ Debug.toJson(resources2));
System.out.println("\n*** 3. Service ***\n");
VOTABLE epnService = facade.getEPNService(TEST_SERVICE_IVOID);
System.out.println("3.1 getEPNService(\"" + TEST_SERVICE_IVOID + "\")\n\t"
+ Debug.toJson(epnService));
VOTABLE epnService2 = facade.getEPNService(TEST_SERVICE_IVOID, SERVICE_ATTRIBUTES);
System.out.println("3.2 getEPNService(\"" + TEST_SERVICE_IVOID + "\", "
+ strServiceAttributes + ")\n\t"
+ Debug.toJson(epnService2));
System.out.println("\n*** 4. Services ***\n");
List epnServices = facade.getEPNServices();
System.out.println("4.1 getEPNServices()\n\t");
List epnServices2 = facade.getEPNServices(SERVICE_ATTRIBUTES);
System.out.println("4.2 getEPNServices(" + strServiceAttributes + ")\n\t");
List epnServices3 = facade.getEPNServices(KEYWORDS, SERVICE_ATTRIBUTES);
System.out.println("4.3 getEPNServices(" + strKeywords + ", "
+ strServiceAttributes + ")\n\t");
System.out.println("\n*** 5. Getters***\n");
String epnCoreTableName = facade.getEPNCoreTableName(TEST_SERVICE_IVOID);
System.out.println("5.1 getEPNCoreTableName(\"" + TEST_SERVICE_IVOID + "\")\n\t"
+ epnCoreTableName);
String tapURL = facade.getTAPURL(TEST_SERVICE_IVOID);
System.out.println("5.2 getTAPURL(\"" + TEST_SERVICE_IVOID + "\")\n\t" + tapURL);
System.out.println("\n*** 6. Queries ***\n");
List granules = facade.sendADQLQuery(TEST_SERVICE_URL, TEST_ADQL_QUERY);
System.out.println("6.1 sendADQLQuery(\"" + TEST_SERVICE_URL + "\", \""
+ TEST_ADQL_QUERY + "\")\n\t"
+ Debug.toJson(granules));
List granules2 = facade.sendQuery(TEST_SERVICE_URL, TEST_SCHEMA_NAME,
TEST_ADQL_QUERY);
System.out.println("6.2 sendQuery(\"" + TEST_SERVICE_URL + "\", \""
+ TEST_SCHEMA_NAME + "\", \"" + TEST_ADQL_QUERY + "\")\n\t"
+ Debug.toJson(granules2));
} catch (CantGetVOTableException | VOResourceException e) {
e.printStackTrace();
}
}
}