/* * 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.lib; import java.util.HashMap; import java.util.Map; import java.util.logging.Logger; import eu.omp.irap.vespa.epntapclient.votable.controller.VOTableController; import eu.omp.irap.vespa.epntapclient.votable.controller.VOTableException.CantDisplayVOTableException; import eu.omp.irap.vespa.epntapclient.votable.controller.VOTableException.CantSendQueryException; import eu.omp.irap.vespa.epntapclient.votable.utils.Consts; /** * The main controller which manage views and controllers. * * @author N. Jourdane */ public class EpnTapController { /** The logger for the class EpnTapController. */ private static final Logger logger = Logger.getLogger(EpnTapController.class.getName()); /** The controller of the VOTable displaying the list of services. */ protected VOTableController servicesCtrl; /** The controller of the VOTable displaying the list of services. */ protected VOTableController resultsCtrl; /** * The parameters fields for the request. */ protected Map paramValues = new HashMap<>(); /** * Method constructor, which initialize servicesController, resultsController and mainView. */ public EpnTapController() { servicesCtrl = new VOTableController(Consts.DEFAULT_REGISTRY_URL, "ADQL", Queries.GET_EPN_TAP_SERVICES); try { servicesCtrl.readTable(); } catch (CantDisplayVOTableException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (CantSendQueryException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public String sendQuery(String query, String tableServiceURL) throws CantDisplayVOTableException, CantSendQueryException { resultsCtrl = new VOTableController(tableServiceURL, "ADQL", query); resultsCtrl.readTable(); return resultsCtrl.getVOTablePath(); } /** * @return The controller of the VOTable which displays the result of the query. */ public VOTableController getResultsController() { return resultsCtrl; } /** * @return The controller of the VOTable which displays the list of services. */ public VOTableController getServicesController() { return servicesCtrl; } public void updateParameter(String paramName, Object paramValue) { paramValues.put(paramName, paramValue); } public void removeParameter(String paramName) { paramValues.remove(paramName); } public Map getParamValues() { return paramValues; } }