Clover icon

Coverage Report

  1. Project Clover database Thu Nov 28 2024 11:45:30 GMT
  2. Package jalview.ws.rest.params

File SeqVector.java

 

Coverage histogram

../../../../img/srcFileCovDistChart0.png
63% 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
SeqVector 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 sequences separated by some separator
41    *
42    * @author JimP
43    *
44    */
 
45    public class SeqVector extends InputType
46    {
47    String sep;
48   
49    molType type;
50   
 
51  0 toggle public SeqVector()
52    {
53  0 super(new Class[] { AlignmentI.class });
54    }
55   
 
56  0 toggle @Override
57    public ContentBody formatForInput(RestJob rj)
58    throws UnsupportedEncodingException, NoValidInputDataException
59    {
60  0 StringBuffer idvector = new StringBuffer();
61  0 boolean list = false;
62  0 for (SequenceI seq : rj.getSequencesForInput(token, type))
63    {
64  0 if (list)
65    {
66  0 idvector.append(sep);
67    }
68  0 idvector.append(seq.getSequenceAsString());
69    }
70  0 return new StringBody(idvector.toString());
71    }
72   
 
73  0 toggle @Override
74    public List<String> getURLEncodedParameter()
75    {
76  0 ArrayList<String> prms = new ArrayList<String>();
77  0 super.addBaseParams(prms);
78  0 prms.add("sep='" + sep + "'");
79  0 if (type != null)
80    {
81  0 prms.add("type='" + type + "'");
82    }
83  0 return prms;
84    }
85   
 
86  0 toggle @Override
87    public String getURLtokenPrefix()
88    {
89  0 return "SEQS";
90    }
91   
 
92  0 toggle @Override
93    public boolean configureProperty(String tok, String val,
94    StringBuffer warnings)
95    {
96   
97  0 if (tok.startsWith("sep"))
98    {
99  0 sep = val;
100  0 return true;
101    }
102  0 if (tok.startsWith("type"))
103    {
104  0 try
105    {
106  0 type = molType.valueOf(val);
107  0 return true;
108    } catch (Exception x)
109    {
110  0 warnings.append(
111    "Invalid molecule type '" + val + "'. Must be one of (");
112  0 for (molType v : molType.values())
113    {
114  0 warnings.append(" " + v);
115    }
116  0 warnings.append(")\n");
117    }
118    }
119  0 return false;
120    }
121   
 
122  0 toggle @Override
123    public List<OptionI> getOptions()
124    {
125  0 List<OptionI> lst = getBaseOptions();
126  0 lst.add(new Option("sep",
127    "Separator character between elements of vector", true, ",",
128    sep, Arrays.asList(new String[]
129    { " ", ",", ";", "\t", "|" }), null));
130  0 lst.add(createMolTypeOption("type", "Sequence type", false, type,
131    molType.MIX));
132   
133  0 return lst;
134    }
135   
136    }