Clover icon

Coverage Report

  1. Project Clover database Thu Nov 7 2024 10:11:34 GMT
  2. Package jalview.ws.rest.params

File SeqIdVector.java

 

Coverage histogram

../../../../img/srcFileCovDistChart0.png
60% of files have more coverage

Code metrics

8
31
6
1
136
96
11
0.35
5.17
6
1.83

Classes

Class Line # Actions
SeqIdVector 45 31 11
0.00%
 

Contributing tests

No tests hitting this source file were found.

Source view

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.rest.params;
22   
23    import jalview.datamodel.AlignmentI;
24    import jalview.datamodel.SequenceI;
25    import jalview.ws.params.OptionI;
26    import jalview.ws.params.simple.Option;
27    import jalview.ws.rest.InputType;
28    import jalview.ws.rest.NoValidInputDataException;
29    import jalview.ws.rest.RestJob;
30   
31    import java.io.UnsupportedEncodingException;
32    import java.util.ArrayList;
33    import java.util.Arrays;
34    import java.util.List;
35   
36    import org.apache.http.entity.mime.content.ContentBody;
37    import org.apache.http.entity.mime.content.StringBody;
38   
39    /**
40    * input a list of sequence IDs separated by some separator
41    *
42    * @author JimP
43    *
44    */
 
45    public class SeqIdVector extends InputType
46    {
 
47  0 toggle public SeqIdVector()
48    {
49  0 super(new Class[] { AlignmentI.class });
50    }
51   
52    /**
53    * separator for list of sequence IDs - default is ','
54    */
55    String sep = ",";
56   
57    molType type;
58   
 
59  0 toggle @Override
60    public ContentBody formatForInput(RestJob rj)
61    throws UnsupportedEncodingException, NoValidInputDataException
62    {
63  0 StringBuffer idvector = new StringBuffer();
64  0 boolean list = false;
65  0 for (SequenceI seq : rj.getSequencesForInput(token, type))
66    {
67  0 if (list)
68    {
69  0 idvector.append(sep);
70    }
71  0 idvector.append(seq.getName());
72    }
73  0 return new StringBody(idvector.toString());
74    }
75   
 
76  0 toggle @Override
77    public List<String> getURLEncodedParameter()
78    {
79  0 ArrayList<String> prms = new ArrayList<String>();
80  0 super.addBaseParams(prms);
81  0 prms.add("sep='" + sep + "'");
82  0 if (type != null)
83    {
84  0 prms.add("type='" + type + "'");
85    }
86  0 return prms;
87    }
88   
 
89  0 toggle @Override
90    public String getURLtokenPrefix()
91    {
92  0 return "SEQIDS";
93    }
94   
 
95  0 toggle @Override
96    public boolean configureProperty(String tok, String val,
97    StringBuffer warnings)
98    {
99  0 if (tok.startsWith("sep"))
100    {
101  0 sep = val;
102  0 return true;
103    }
104  0 if (tok.startsWith("type"))
105    {
106  0 try
107    {
108  0 type = molType.valueOf(val);
109  0 return true;
110    } catch (Exception x)
111    {
112  0 warnings.append(
113    "Invalid molecule type '" + val + "'. Must be one of (");
114  0 for (molType v : molType.values())
115    {
116  0 warnings.append(" " + v);
117    }
118  0 warnings.append(")\n");
119    }
120    }
121  0 return false;
122    }
123   
 
124  0 toggle @Override
125    public List<OptionI> getOptions()
126    {
127  0 List<OptionI> lst = getBaseOptions();
128  0 lst.add(new Option("sep",
129    "Separator character between elements of vector", true, ",",
130    sep, Arrays.asList(new String[]
131    { " ", ",", ";", "\t", "|" }), null));
132  0 lst.add(createMolTypeOption("type", "Sequence type", false, type,
133    null));
134  0 return lst;
135    }
136    }