Coverage report

| %line | %branch
--- | --- | ---
org.apache.commons.net.nntp.NewGroupsOrNewsQuery |
0% |
0% |

1 |  |
     /*
2 |  |
      * Copyright 2001-2005 The Apache Software Foundation
3 |  |
      *
4 |  |
      * Licensed under the Apache License, Version 2.0 (the "License");
5 |  |
      * you may not use this file except in compliance with the License.
6 |  |
      * You may obtain a copy of the License at
7 |  |
      *
8 |  |
      *     http://www.apache.org/licenses/LICENSE-2.0
9 |  |
      *
10 |  |
      * Unless required by applicable law or agreed to in writing, software
11 |  |
      * distributed under the License is distributed on an "AS IS" BASIS,
12 |  |
      * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 |  |
      * See the License for the specific language governing permissions and
14 |  |
      * limitations under the License.
15 |  |
      */
16 |  |
     package org.apache.commons.net.nntp;
17 |  |
18 |  |
     import java.util.Calendar;
19 |  |
20 |  |
     /***
21 |  |
      * The NewGroupsOrNewsQuery class.  This is used to issue NNTP NEWGROUPS and
22 |  |
      * NEWNEWS queries, implemented by
23 |  |
      * {@link org.apache.commons.net.nntp.NNTPClient#listNewNewsgroups listNewNewsGroups }
24 |  |
      *  and
25 |  |
      * {@link org.apache.commons.net.nntp.NNTPClient#listNewNews listNewNews }
26 |  |
      *  respectively.  It prevents you from having to format
27 |  |
      * date, time, distribution, and newgroup arguments.
28 |  |
      * <p>
29 |  |
      * You might use the class as follows:
30 |  |
      * <pre>
31 |  |
      * query = new NewsGroupsOrNewsQuery(new GregorianCalendar(97, 11, 15), false);
32 |  |
      * query.addDistribution("comp");
33 |  |
      * NewsgroupInfo[] newsgroups = client.listNewgroups(query);
34 |  |
      * </pre>
35 |  |
      * This will retrieve the list of newsgroups starting with the comp.
36 |  |
      * distribution prefix created since midnight 11/15/97.
37 |  |
      * <p>
38 |  |
      * <p>
39 |  |
      * @author Daniel F. Savarese
40 |  |
      * @see NNTPClient
41 |  |
      ***/
42 |  |
43 |  |
     public final class NewGroupsOrNewsQuery
44 |  |
     {
45 |  |
         private String __date, __time;
46 |  |
         private StringBuffer __distributions;
47 |  |
         private StringBuffer __newsgroups;
48 |  |
         private boolean __isGMT;
49 |  |
50 |  |
51 |  |
         /***
52 |  |
          * Creates a new query using the given time as a reference point.
53 |  |
          * <p>
54 |  |
          * @param date  The date since which new groups or news have arrived.
55 |  |
          * @param gmt   True if the date should be considered as GMT, false if not.
56 |  |
          ***/
57 |  |
         public NewGroupsOrNewsQuery(Calendar date, boolean gmt)
58 | 0 |
         {
59 |  |
             int num;
60 |  |
             String str;
61 |  |
             StringBuffer buffer;
62 |  |
63 | 0 |
             __distributions = null;
64 | 0 |
             __newsgroups = null;
65 | 0 |
             __isGMT = gmt;
66 |  |
67 | 0 |
             buffer = new StringBuffer();
68 |  |
69 |  |
             // Get year
70 | 0 |
             num = date.get(Calendar.YEAR);
71 | 0 |
             str = Integer.toString(num);
72 | 0 |
             num = str.length();
73 |  |
74 | 0 |
             if (num >= 2)
75 | 0 |
                 buffer.append(str.substring(num - 2));
76 |  |
             else
77 | 0 |
                 buffer.append("00");
78 |  |
79 |  |
             // Get month
80 | 0 |
             num = date.get(Calendar.MONTH) + 1;
81 | 0 |
             str = Integer.toString(num);
82 | 0 |
             num = str.length();
83 |  |
84 | 0 |
             if (num == 1)
85 |  |
             {
86 | 0 |
                 buffer.append('0');
87 | 0 |
                 buffer.append(str);
88 |  |
             }
89 | 0 |
             else if (num == 2)
90 | 0 |
                 buffer.append(str);
91 |  |
             else
92 | 0 |
                 buffer.append("01");
93 |  |
94 |  |
             // Get day
95 | 0 |
             num = date.get(Calendar.DAY_OF_MONTH);
96 | 0 |
             str = Integer.toString(num);
97 | 0 |
             num = str.length();
98 |  |
99 | 0 |
             if (num == 1)
100 |  |
             {
101 | 0 |
                 buffer.append('0');
102 | 0 |
                 buffer.append(str);
103 |  |
             }
104 | 0 |
             else if (num == 2)
105 | 0 |
                 buffer.append(str);
106 |  |
             else
107 | 0 |
                 buffer.append("01");
108 |  |
109 | 0 |
             __date = buffer.toString();
110 |  |
111 | 0 |
             buffer.setLength(0);
112 |  |
113 |  |
             // Get hour
114 | 0 |
             num = date.get(Calendar.HOUR_OF_DAY);
115 | 0 |
             str = Integer.toString(num);
116 | 0 |
             num = str.length();
117 |  |
118 | 0 |
             if (num == 1)
119 |  |
             {
120 | 0 |
                 buffer.append('0');
121 | 0 |
                 buffer.append(str);
122 |  |
             }
123 | 0 |
             else if (num == 2)
124 | 0 |
                 buffer.append(str);
125 |  |
             else
126 | 0 |
                 buffer.append("00");
127 |  |
128 |  |
             // Get minutes
129 | 0 |
             num = date.get(Calendar.MINUTE);
130 | 0 |
             str = Integer.toString(num);
131 | 0 |
             num = str.length();
132 |  |
133 | 0 |
             if (num == 1)
134 |  |
             {
135 | 0 |
                 buffer.append('0');
136 | 0 |
                 buffer.append(str);
137 |  |
             }
138 | 0 |
             else if (num == 2)
139 | 0 |
                 buffer.append(str);
140 |  |
             else
141 | 0 |
                 buffer.append("00");
142 |  |
143 |  |
144 |  |
             // Get seconds
145 | 0 |
             num = date.get(Calendar.SECOND);
146 | 0 |
             str = Integer.toString(num);
147 | 0 |
             num = str.length();
148 |  |
149 | 0 |
             if (num == 1)
150 |  |
             {
151 | 0 |
                 buffer.append('0');
152 | 0 |
                 buffer.append(str);
153 |  |
             }
154 | 0 |
             else if (num == 2)
155 | 0 |
                 buffer.append(str);
156 |  |
             else
157 | 0 |
                 buffer.append("00");
158 |  |
159 | 0 |
             __time = buffer.toString();
160 | 0 |
         }
161 |  |
162 |  |
163 |  |
         /***
164 |  |
          * Add a newsgroup to the list of newsgroups being queried.  Newsgroups
165 |  |
          * added this way are only meaningful to the NEWNEWS command.  Newsgroup
166 |  |
          * names may include the <code> * </code> wildcard, as in
167 |  |
          * <code>comp.lang.* </code> or <code> comp.lang.java.* </code>.  Adding
168 |  |
          * at least one newsgroup is mandatory for the NEWNEWS command.
169 |  |
          * <p>
170 |  |
          * @param newsgroup  The newsgroup to add to the list of groups to be
171 |  |
          *                   checked for new news.
172 |  |
          ***/
173 |  |
         public void addNewsgroup(String newsgroup)
174 |  |
         {
175 | 0 |
             if (__newsgroups != null)
176 | 0 |
                 __newsgroups.append(',');
177 |  |
             else
178 | 0 |
                 __newsgroups = new StringBuffer();
179 | 0 |
             __newsgroups.append(newsgroup);
180 | 0 |
         }
181 |  |
182 |  |
183 |  |
         /***
184 |  |
          * Add a newsgroup to the list of newsgroups being queried, but indicate
185 |  |
          * that group should not be checked for new news.  Newsgroups
186 |  |
          * added this way are only meaningful to the NEWNEWS command.
187 |  |
          * Newsgroup names may include the <code> * </code> wildcard, as in
188 |  |
          * <code>comp.lang.* </code> or <code> comp.lang.java.* </code>.
189 |  |
          * <p>
190 |  |
          * The following would create a query that searched for new news in
191 |  |
          * all comp.lang.java newsgroups except for comp.lang.java.advocacy.
192 |  |
          * <pre>
193 |  |
          * query.addNewsgroup("comp.lang.java.*");
194 |  |
          * query.omitNewsgroup("comp.lang.java.advocacy");
195 |  |
          * </pre>
196 |  |
          * <p>
197 |  |
          * @param newsgroup  The newsgroup to add to the list of groups to be
198 |  |
          *                   checked for new news, but which should be omitted from
199 |  |
          *                   the search for new news..
200 |  |
          ***/
201 |  |
         public void omitNewsgroup(String newsgroup)
202 |  |
         {
203 | 0 |
             addNewsgroup("!" + newsgroup);
204 | 0 |
         }
205 |  |
206 |  |
207 |  |
         /***
208 |  |
          * Add a distribution group to the query.  The distribution part of a
209 |  |
          * newsgroup is the segment of the name preceding the first dot (e.g.,
210 |  |
          * comp, alt, rec).  Only those newsgroups matching one of the
211 |  |
          * distributions or, in the case of NEWNEWS, an article in a newsgroup
212 |  |
          * matching one of the distributions, will be reported as a query result.
213 |  |
          * Adding distributions is purely optional.
214 |  |
          * <p>
215 |  |
          * @param distribution A distribution to add to the query.
216 |  |
          ***/
217 |  |
         public void addDistribution(String distribution)
218 |  |
         {
219 | 0 |
             if (__distributions != null)
220 | 0 |
                 __distributions.append(',');
221 |  |
             else
222 | 0 |
                 __distributions = new StringBuffer();
223 | 0 |
             __distributions.append(distribution);
224 | 0 |
         }
225 |  |
226 |  |
         /***
227 |  |
          * Return the NNTP query formatted date (year, month, day in the form
228 |  |
          * YYMMDD.
229 |  |
          * <p>
230 |  |
          * @return The NNTP query formatted date.
231 |  |
          ***/
232 |  |
         public String getDate()
233 |  |
         {
234 | 0 |
             return __date;
235 |  |
         }
236 |  |
237 |  |
         /***
238 |  |
          * Return the NNTP query formatted time (hour, minutes, seconds in the form
239 |  |
          * HHMMSS.
240 |  |
          * <p>
241 |  |
          * @return The NNTP query formatted time.
242 |  |
          ***/
243 |  |
         public String getTime()
244 |  |
         {
245 | 0 |
             return __time;
246 |  |
         }
247 |  |
248 |  |
         /***
249 |  |
          * Return whether or not the query date should be treated as GMT.
250 |  |
          * <p>
251 |  |
          * @return True if the query date is to be treated as GMT, false if not.
252 |  |
          ***/
253 |  |
         public boolean isGMT()
254 |  |
         {
255 | 0 |
             return __isGMT;
256 |  |
         }
257 |  |
258 |  |
         /***
259 |  |
          * Return the comma separated list of distributions.  This may be null
260 |  |
          * if there are no distributions.
261 |  |
          * <p>
262 |  |
          * @return The list of distributions, which may be null if no distributions
263 |  |
          *         have been specified.
264 |  |
          ***/
265 |  |
         public String getDistributions()
266 |  |
         {
267 | 0 |
             return (__distributions == null ? class="keyword">null : __distributions.toString());
268 |  |
         }
269 |  |
270 |  |
         /***
271 |  |
          * Return the comma separated list of newsgroups.  This may be null
272 |  |
          * if there are no newsgroups
273 |  |
          * <p>
274 |  |
          * @return The list of newsgroups, which may be null if no newsgroups
275 |  |
          *         have been specified.
276 |  |
          ***/
277 |  |
         public String getNewsgroups()
278 |  |
         {
279 | 0 |
             return (__newsgroups == null ? class="keyword">null : __newsgroups.toString());
280 |  |
         }
281 |  |
     }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.