0d8b09ccae38e22b2f691342579689d866a69b0c
[jalview.git] / forester / java / src / org / forester / archaeopteryx / webservices / PhylogeniesWebserviceClient.java
1 // $Id:
2 // FORESTER -- software libraries and applications
3 // for evolutionary biology research and applications.
4 //
5 // Copyright (C) 2008-2010 Christian M. Zmasek
6 // All rights reserved
7 //
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.
12 //
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.
17 //
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
21 //
22 // Contact: phylosoft @ gmail . com
23 // WWW: www.phylosoft.org/forester
24
25 package org.forester.archaeopteryx.webservices;
26
27 import org.forester.archaeopteryx.webservices.WebservicesManager.WsPhylogenyFormat;
28 import org.forester.phylogeny.PhylogenyMethods;
29
30 /*
31  * Webservices which return phylogenies.
32  */
33 public interface PhylogeniesWebserviceClient {
34
35     public final static String QUERY_PLACEHOLDER = "__query__";
36
37     /**
38      * A short description of the webservice (~20 characters).
39      *  
40      * @return a short description of the webservice (~20 characters)
41      */
42     public String getDescription();
43
44     /**
45      * Instructions (and examples) on how to use the webservice.
46      * 
47      * @return instructions (and examples) on how to use the webservice
48      */
49     public String getInstructions();
50
51     /**
52      * A name/description which can appear on a menu.
53      * 
54      * @return A name/description which can appear on a menu
55      */
56     public String getMenuName();
57
58     /**
59      * The name of the webservice.
60      * 
61      * 
62      * @return the name of the webservice
63      */
64     public String getName();
65
66     /**
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.  
69      * 
70      * @return the field code
71      */
72     public PhylogenyMethods.PhylogenyNodeField getNodeField();
73
74     /**
75      * This is used to indicate any kind of special processing.
76      * 
77      * 
78      * @return a reference
79      */
80     public Object getProcessingInstructions();
81
82     /**
83      * To get a type of reference for the webservice (an URL or citation, for example).
84      * 
85      * 
86      * @return a reference
87      */
88     public String getReference();
89
90     /**
91      * The expected format of the response.
92      * 
93      * @return the expected format of the response
94      */
95     public WsPhylogenyFormat getReturnFormat();
96
97     /**
98      * Use QUERY_PLACEHOLDER to indicate position of query variable.
99      * 
100      * @return the URL
101      */
102     public String getUrl();
103
104     /**
105      * Is the query a number?
106      * 
107      * 
108      * @return
109      */
110     public boolean isQueryInteger();
111 }