2 // FORESTER -- software libraries and applications
3 // for evolutionary biology research and applications.
5 // Copyright (C) 2008-2010 Christian M. Zmasek
8 // This library is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU Lesser General Public
10 // License as published by the Free Software Foundation; either
11 // version 2.1 of the License, or (at your option) any later version.
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
18 // You should have received a copy of the GNU Lesser General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22 // Contact: phylosoft @ gmail . com
23 // WWW: www.phylosoft.org/forester
25 package org.forester.archaeopteryx.webservices;
27 import org.forester.archaeopteryx.webservices.WebservicesManager.WsPhylogenyFormat;
28 import org.forester.util.ForesterUtil.PhylogenyNodeField;
31 * Webservices which return phylogenies.
33 public interface PhylogeniesWebserviceClient {
35 public final static String QUERY_PLACEHOLDER = "__query__";
38 * A short description of the webservice (~20 characters).
40 * @return a short description of the webservice (~20 characters)
42 public String getDescription();
45 * Instructions (and examples) on how to use the webservice.
47 * @return instructions (and examples) on how to use the webservice
49 public String getInstructions();
52 * A name/description which can appear on a menu.
54 * @return A name/description which can appear on a menu
56 public String getMenuName();
59 * The name of the webservice.
62 * @return the name of the webservice
64 public String getName();
67 * The node data field in which to place node names from simple unannotated formats
68 * (such as Newick). Null means avoiding any such postprocessing.
70 * @return the field code
72 public PhylogenyNodeField getNodeField();
75 * This is used to indicate any kind of special processing.
80 public Object getProcessingInstructions();
83 * To get a type of reference for the webservice (an URL or citation, for example).
88 public String getReference();
91 * The expected format of the response.
93 * @return the expected format of the response
95 public WsPhylogenyFormat getReturnFormat();
98 * Use QUERY_PLACEHOLDER to indicate position of query variable.
102 public String getUrl();
105 * Is the query a number?
110 public boolean isQueryInteger();