JAL-1479 minor refactor and housekeeping
[jalview.git] / src / jalview / ws / params / WsParamSetI.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.ws.params;
22
23 import java.util.List;
24
25 /**
26  * A web service parameter set
27  * 
28  */
29 public interface WsParamSetI
30 {
31   /**
32    * Human readable name for parameter set
33    * 
34    * @return unique string (given applicable URLs)
35    */
36   public String getName();
37
38   /**
39    * @return notes about this parameter set
40    */
41   public String getDescription();
42
43   /**
44    * the service endpoints for which this parameter set is valid
45    * 
46    * @return one or more URLs
47    */
48   public String[] getApplicableUrls();
49
50   /**
51    * 
52    * @return null, or the file used to store this parameter set.
53    */
54   public String getSourceFile();
55
56   /**
57    * set the filename used to store this parameter set.
58    * 
59    * @newfile
60    */
61   public void setSourceFile(String newfile);
62
63   /**
64    * is this a preset or a user modifiable parameter set
65    * 
66    * @return true if set can be modified
67    */
68   public boolean isModifiable();
69
70   /**
71    * 
72    * @return arguments in preset
73    */
74   List<ArgumentI> getArguments();
75
76   /**
77    * set the arguments for the preset. Should this preset instance be
78    * unmodifiable, an Error should be thrown.
79    * 
80    * @param args
81    */
82   public void setArguments(List<ArgumentI> args);
83 }