1bf8b358be912be58e1077902e0c4e81b90f029b
[jalview.git] / src / jalview / ws / uimodel / PDBRestRequest.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
3  * Copyright (C) 2014 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
22 package jalview.ws.uimodel;
23
24
25 import jalview.datamodel.SequenceI;
26 import jalview.ws.dbsources.PDBRestClient.PDBDocField;
27
28 import java.util.Collection;
29
30 /**
31  * Represents the PDB request to be consumed by the PDBRestClient
32  * 
33  * @author tcnofoegbu
34  *
35  */
36 public class PDBRestRequest
37 {
38   private String fieldToSearchBy;
39
40   private String searchTerm;
41
42   private String fieldToSortBy;
43
44   private SequenceI associatedSequence;
45
46   private boolean allowEmptySequence;
47
48   private int responseSize;
49
50   private boolean isSortAscending;
51
52   private Collection<PDBDocField> wantedFields;// = new
53                                                // Collection<PDBDocField>();
54
55   public String getFieldToSearchBy()
56   {
57     return fieldToSearchBy;
58   }
59
60   public void setFieldToSearchBy(String fieldToSearchBy)
61   {
62     this.fieldToSearchBy = fieldToSearchBy;
63   }
64
65   public String getSearchTerm()
66   {
67     return searchTerm;
68   }
69
70   public void setSearchTerm(String searchTerm)
71   {
72     this.searchTerm = searchTerm;
73   }
74
75   public boolean isAllowEmptySeq()
76   {
77     return allowEmptySequence;
78   }
79
80   public void setAllowEmptySeq(boolean allowEmptySeq)
81   {
82     this.allowEmptySequence = allowEmptySeq;
83   }
84
85   public int getResponseSize()
86   {
87     return responseSize;
88   }
89
90   public void setResponseSize(int responseSize)
91   {
92     this.responseSize = responseSize;
93   }
94
95   public Collection<PDBDocField> getWantedFields()
96   {
97     return wantedFields;
98   }
99
100   public void setWantedFields(Collection<PDBDocField> wantedFields)
101   {
102     this.wantedFields = wantedFields;
103   }
104
105   public String getFieldToSortBy()
106   {
107     return fieldToSortBy;
108   }
109
110   public void setFieldToSortBy(String fieldToSortBy, boolean isSortAscending)
111   {
112     this.fieldToSortBy = fieldToSortBy;
113     this.isSortAscending = isSortAscending;
114   }
115
116   public boolean isAscending()
117   {
118     return isSortAscending;
119   }
120
121   public SequenceI getAssociatedSequence()
122   {
123     return associatedSequence;
124   }
125
126   public void setAssociatedSequence(SequenceI associatedSequence)
127   {
128     this.associatedSequence = associatedSequence;
129   }
130
131   public String getQuery()
132   {
133     return fieldToSearchBy + searchTerm
134             + (isAllowEmptySeq() ? "" : " AND molecule_sequence:['' TO *]");
135   }
136
137   public String toString()
138   {
139     return "Query : " + getQuery() + " sort field: " + fieldToSortBy
140             + " isAsc: " + isAscending() + " Associated Seq : "
141             + associatedSequence;
142   }
143 }