diff --git a/src/main/java/eu/omp/irap/vespa/epntapclient/EpnTapConnection.java b/src/main/java/eu/omp/irap/vespa/epntapclient/EpnTapConnection.java new file mode 100644 index 0000000..504fbb6 --- /dev/null +++ b/src/main/java/eu/omp/irap/vespa/epntapclient/EpnTapConnection.java @@ -0,0 +1,203 @@ +/* + * 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.text.ParseException; +import java.util.ArrayList; +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.granule.GranuleCtrl; +import eu.omp.irap.vespa.epntapclient.service.Queries; +import eu.omp.irap.vespa.epntapclient.service.Service; +import eu.omp.irap.vespa.epntapclient.service.ServiceCore; +import eu.omp.irap.vespa.epntapclient.service.ServiceCtrl; +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.Consts; +import eu.omp.irap.vespa.votable.controller.CantGetVOTableException; +import eu.omp.irap.vespa.votable.controller.VOTableController; +import eu.omp.irap.vespa.votable.utils.StringJoiner; +import eu.omp.irap.vespa.votable.votabledata.VOTableData; + +/** + * @author N. Jourdane + */ +public class EpnTapConnection implements EpnTapInterface { + + /** The logger for the class EpnTapFacade. */ + private static final Logger logger = Logger.getLogger(EpnTapConnection.class.getName()); + + + // *** Resource *** + + @Override + public Resource getEPNVOresource(String ivoid) throws VOResourceException { + return VOResourceCtrl.getVOresource(ivoid); + } + + // *** Resources *** + + @Override + public List getEPNVOResources() throws VOResourceException { + return VOResourceCtrl.getVOResources(ServiceCore.EPNCORE); + } + + @Override + public List getEPNVOResources(Map keywords) + throws VOResourceException { + return VOResourceCtrl.getVOResources(ServiceCore.EPNCORE, keywords); + } + + // *** Service *** + + public Service _getEPNService(String ivoid) throws CantGetVOTableException { + return ServiceCtrl.getServiceFromIvoid(ivoid); + } + + @Override + public VOTABLE getEPNService(String ivoid) throws CantGetVOTableException { + String query = String.format(Queries.GET_TAP_SERVICES_WHERE_IVOID, ivoid); + VOTableController ctrl = new VOTableController(Consts.DEFAULT_REGISTRY_URL, query); + ctrl.readTable(); + return ctrl.getVOTable(); + } + + @Override + public VOTABLE getEPNService(String ivoid, List attributes) + throws CantGetVOTableException { + // TODO: optimiser le nombre de requêtes + String tableName = getEPNCoreTableName(ivoid); + String query = String.format(Queries.SELECT_FROM, StringJoiner.join(attributes), tableName); + VOTableController ctrl = new VOTableController(getTAPURL(ivoid), query); + ctrl.readTable(); + return ctrl.getVOTable(); + } + + // *** Services *** + + @Override + public List getEPNServices() throws VOResourceException { + List voTables = new ArrayList<>(); + List ivoids = VOResourceCtrl.getIvoidResources(ServiceCore.EPNCORE); + // TODO: optimiser le nombre de requêtes + for (String ivoid : ivoids) { + try { + String query = String.format(Queries.SELECT_ALL, getEPNCoreTableName(ivoid)); + VOTableController ctrl = new VOTableController(getTAPURL(ivoid), query); + ctrl.readTable(); + voTables.add(ctrl.getVOTable()); + } catch (CantGetVOTableException e) { + logger.info("Can not get the service " + ivoid + ", skipping..."); + } + } + return voTables; + } + + @Override + public List getEPNServices(List attributes) + throws CantGetVOTableException, VOResourceException { + List voTables = new ArrayList<>(); + List ivoids = VOResourceCtrl.getIvoidResources(ServiceCore.EPNCORE); + // TODO: optimiser le nombre de requêtes + for (String ivoid : ivoids) { + try { + String tableName = getEPNCoreTableName(ivoid); + String query = String.format(Queries.SELECT_FROM, StringJoiner.join(attributes), + tableName); + VOTableController ctrl = new VOTableController(getTAPURL(ivoid), query); + ctrl.readTable(); + voTables.add(ctrl.getVOTable()); + } catch (CantGetVOTableException e) { + logger.info("Can not get the service " + ivoid + ", skipping..."); + } + } + return voTables; + } + + @Override + public List getEPNServices(Map keywords, List attributes) + throws CantGetVOTableException, VOResourceException { + List voTables = new ArrayList<>(); + List ivoids = VOResourceCtrl.getIvoidResources(ServiceCore.EPNCORE, keywords); + // TODO: optimiser le nombre de requêtes + for (String ivoid : ivoids) { + try { + String tableName = getEPNCoreTableName(ivoid); + String query = String.format(Queries.SELECT_FROM, StringJoiner.join(attributes), + tableName); + VOTableController ctrl = new VOTableController(getTAPURL(ivoid), query); + ctrl.readTable(); + voTables.add(ctrl.getVOTable()); + } catch (CantGetVOTableException e) { + logger.info("Can not get the service " + ivoid + ", skipping..."); + } + } + return voTables; + } + + // *** Getters *** + + @Override + public String getEPNCoreTableName(String ivoid) + throws CantGetVOTableException { + String query = String.format(Queries.GET_TAP_SERVICES_SELECT_WHERE_IVOID, "table_name", + ivoid); + VOTableController ctrl = new VOTableController(Consts.DEFAULT_REGISTRY_URL, query); + ctrl.readTable(); + return (String) ctrl.getVOTableData().getCell(0, 0); + } + + @Override + public String getTAPURL(String ivoid) + throws CantGetVOTableException { + String query = String.format(Queries.GET_TAP_SERVICES_SELECT_WHERE_IVOID, "access_url", + ivoid); + VOTableController ctrl = new VOTableController(Consts.DEFAULT_REGISTRY_URL, query); + ctrl.readTable(); + return (String) ctrl.getVOTableData().getCell(0, 0); + } + + // *** Queries *** + + @Override + public List sendADQLQuery(String tapURL, String adqlQuery) + throws CantGetVOTableException { + EpnTapController epnTapCtrl = new EpnTapController(); + epnTapCtrl.sendQuery(adqlQuery, tapURL); + VOTableData data = epnTapCtrl.getResultsController().getVOTableData(); + List granules; + try { + GranuleCtrl gc = new GranuleCtrl(data); + granules = gc.getGranulesFromVOTable(); + } catch (ParseException e) { + throw new CantGetVOTableException("Parsing error on a granule.", e); + } + return granules; + } + + @Override + public List sendQuery(String tapURL, String schemaName, String query) { + // TODO TBC + return null; + } + +} diff --git a/src/main/java/eu/omp/irap/vespa/epntapclient/EpnTapFacade.java b/src/main/java/eu/omp/irap/vespa/epntapclient/EpnTapFacade.java deleted file mode 100644 index 3f37218..0000000 --- a/src/main/java/eu/omp/irap/vespa/epntapclient/EpnTapFacade.java +++ /dev/null @@ -1,203 +0,0 @@ -/* - * 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.text.ParseException; -import java.util.ArrayList; -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.granule.GranuleCtrl; -import eu.omp.irap.vespa.epntapclient.service.Queries; -import eu.omp.irap.vespa.epntapclient.service.Service; -import eu.omp.irap.vespa.epntapclient.service.ServiceCore; -import eu.omp.irap.vespa.epntapclient.service.ServiceCtrl; -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.Consts; -import eu.omp.irap.vespa.votable.controller.CantGetVOTableException; -import eu.omp.irap.vespa.votable.controller.VOTableController; -import eu.omp.irap.vespa.votable.utils.StringJoiner; -import eu.omp.irap.vespa.votable.votabledata.VOTableData; - -/** - * @author N. Jourdane - */ -public class EpnTapFacade implements EpnTapInterface { - - /** The logger for the class EpnTapFacade. */ - private static final Logger logger = Logger.getLogger(EpnTapFacade.class.getName()); - - - // *** Resource *** - - @Override - public Resource getEPNVOresource(String ivoid) throws VOResourceException { - return VOResourceCtrl.getVOresource(ivoid); - } - - // *** Resources *** - - @Override - public List getEPNVOResources() throws VOResourceException { - return VOResourceCtrl.getVOResources(ServiceCore.EPNCORE); - } - - @Override - public List getEPNVOResources(Map keywords) - throws VOResourceException { - return VOResourceCtrl.getVOResources(ServiceCore.EPNCORE, keywords); - } - - // *** Service *** - - public Service _getEPNService(String ivoid) throws CantGetVOTableException { - return ServiceCtrl.getServiceFromIvoid(ivoid); - } - - @Override - public VOTABLE getEPNService(String ivoid) throws CantGetVOTableException { - String query = String.format(Queries.GET_TAP_SERVICES_WHERE_IVOID, ivoid); - VOTableController ctrl = new VOTableController(Consts.DEFAULT_REGISTRY_URL, query); - ctrl.readTable(); - return ctrl.getVOTable(); - } - - @Override - public VOTABLE getEPNService(String ivoid, List attributes) - throws CantGetVOTableException { - // TODO: optimiser le nombre de requêtes - String tableName = getEPNCoreTableName(ivoid); - String query = String.format(Queries.SELECT_FROM, StringJoiner.join(attributes), tableName); - VOTableController ctrl = new VOTableController(getTAPURL(ivoid), query); - ctrl.readTable(); - return ctrl.getVOTable(); - } - - // *** Services *** - - @Override - public List getEPNServices() throws VOResourceException { - List voTables = new ArrayList<>(); - List ivoids = VOResourceCtrl.getIvoidResources(ServiceCore.EPNCORE); - // TODO: optimiser le nombre de requêtes - for (String ivoid : ivoids) { - try { - String query = String.format(Queries.SELECT_ALL, getEPNCoreTableName(ivoid)); - VOTableController ctrl = new VOTableController(getTAPURL(ivoid), query); - ctrl.readTable(); - voTables.add(ctrl.getVOTable()); - } catch (CantGetVOTableException e) { - logger.info("Can not get the service " + ivoid + ", skipping..."); - } - } - return voTables; - } - - @Override - public List getEPNServices(List attributes) - throws CantGetVOTableException, VOResourceException { - List voTables = new ArrayList<>(); - List ivoids = VOResourceCtrl.getIvoidResources(ServiceCore.EPNCORE); - // TODO: optimiser le nombre de requêtes - for (String ivoid : ivoids) { - try { - String tableName = getEPNCoreTableName(ivoid); - String query = String.format(Queries.SELECT_FROM, StringJoiner.join(attributes), - tableName); - VOTableController ctrl = new VOTableController(getTAPURL(ivoid), query); - ctrl.readTable(); - voTables.add(ctrl.getVOTable()); - } catch (CantGetVOTableException e) { - logger.info("Can not get the service " + ivoid + ", skipping..."); - } - } - return voTables; - } - - @Override - public List getEPNServices(Map keywords, List attributes) - throws CantGetVOTableException, VOResourceException { - List voTables = new ArrayList<>(); - List ivoids = VOResourceCtrl.getIvoidResources(ServiceCore.EPNCORE, keywords); - // TODO: optimiser le nombre de requêtes - for (String ivoid : ivoids) { - try { - String tableName = getEPNCoreTableName(ivoid); - String query = String.format(Queries.SELECT_FROM, StringJoiner.join(attributes), - tableName); - VOTableController ctrl = new VOTableController(getTAPURL(ivoid), query); - ctrl.readTable(); - voTables.add(ctrl.getVOTable()); - } catch (CantGetVOTableException e) { - logger.info("Can not get the service " + ivoid + ", skipping..."); - } - } - return voTables; - } - - // *** Getters *** - - @Override - public String getEPNCoreTableName(String ivoid) - throws CantGetVOTableException { - String query = String.format(Queries.GET_TAP_SERVICES_SELECT_WHERE_IVOID, "table_name", - ivoid); - VOTableController ctrl = new VOTableController(Consts.DEFAULT_REGISTRY_URL, query); - ctrl.readTable(); - return (String) ctrl.getVOTableData().getCell(0, 0); - } - - @Override - public String getTAPURL(String ivoid) - throws CantGetVOTableException { - String query = String.format(Queries.GET_TAP_SERVICES_SELECT_WHERE_IVOID, "access_url", - ivoid); - VOTableController ctrl = new VOTableController(Consts.DEFAULT_REGISTRY_URL, query); - ctrl.readTable(); - return (String) ctrl.getVOTableData().getCell(0, 0); - } - - // *** Queries *** - - @Override - public List sendADQLQuery(String tapURL, String adqlQuery) - throws CantGetVOTableException { - EpnTapController epnTapCtrl = new EpnTapController(); - epnTapCtrl.sendQuery(adqlQuery, tapURL); - VOTableData data = epnTapCtrl.getResultsController().getVOTableData(); - List granules; - try { - GranuleCtrl gc = new GranuleCtrl(data); - granules = gc.getGranulesFromVOTable(); - } catch (ParseException e) { - throw new CantGetVOTableException("Parsing error on a granule.", e); - } - return granules; - } - - @Override - public List sendQuery(String tapURL, String schemaName, String query) { - // TODO TBC - return null; - } - -} diff --git a/src/test/java/eu/omp/irap/vespa/epntapclient/TestEpnTapConnection.java b/src/test/java/eu/omp/irap/vespa/epntapclient/TestEpnTapConnection.java new file mode 100644 index 0000000..c4d58f4 --- /dev/null +++ b/src/test/java/eu/omp/irap/vespa/epntapclient/TestEpnTapConnection.java @@ -0,0 +1,132 @@ +/* + * 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 TestEpnTapConnection { + + /** The logger for the class Main. */ + private static final Logger logger = Logger.getLogger(TestEpnTapConnection.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) { + EpnTapConnection facade = new EpnTapConnection(); + + 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(); + } + } +} diff --git a/src/test/java/eu/omp/irap/vespa/epntapclient/TestEpnTapFacade.java b/src/test/java/eu/omp/irap/vespa/epntapclient/TestEpnTapFacade.java deleted file mode 100644 index 37fc191..0000000 --- a/src/test/java/eu/omp/irap/vespa/epntapclient/TestEpnTapFacade.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * 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(); - } - } -} -- libgit2 0.21.2