1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 package org.apache.commons.net.nntp;
19
20 /***
21 * NewsgroupInfo stores information pertaining to a newsgroup returned by
22 * the NNTP GROUP, LIST, and NEWGROUPS commands, implemented by
23 * {@link org.apache.commons.net.nntp.NNTPClient#selectNewsgroup selectNewsgroup }
24 * ,
25 * {@link org.apache.commons.net.nntp.NNTPClient#listNewsgroups listNewsgroups }
26 * , and
27 * {@link org.apache.commons.net.nntp.NNTPClient#listNewNewsgroups listNewNewsgroups }
28 * respectively.
29 * <p>
30 * <p>
31 * @author Daniel F. Savarese
32 * @see NNTPClient
33 ***/
34
35 public final class NewsgroupInfo
36 {
37 /***
38 * A constant indicating that the posting permission of a newsgroup is
39 * unknown. For example, the NNTP GROUP command does not return posting
40 * information, so NewsgroupInfo instances obtained from that command
41 * willhave an UNKNOWN_POSTING_PERMISSION.
42 ***/
43 public static final int UNKNOWN_POSTING_PERMISSION = 0;
44
45 /*** A constant indicating that a newsgroup is moderated. ***/
46 public static final int MODERATED_POSTING_PERMISSION = 1;
47
48 /*** A constant indicating that a newsgroup is public and unmoderated. ***/
49 public static final int PERMITTED_POSTING_PERMISSION = 2;
50
51 /***
52 * A constant indicating that a newsgroup is closed for general posting.
53 ***/
54 public static final int PROHIBITED_POSTING_PERMISSION = 3;
55
56 private String __newsgroup;
57 private int __estimatedArticleCount;
58 private int __firstArticle, __lastArticle;
59 private int __postingPermission;
60
61 void _setNewsgroup(String newsgroup)
62 {
63 __newsgroup = newsgroup;
64 }
65
66 void _setArticleCount(int count)
67 {
68 __estimatedArticleCount = count;
69 }
70
71 void _setFirstArticle(int first)
72 {
73 __firstArticle = first;
74 }
75
76 void _setLastArticle(int last)
77 {
78 __lastArticle = last;
79 }
80
81 void _setPostingPermission(int permission)
82 {
83 __postingPermission = permission;
84 }
85
86 /***
87 * Get the newsgroup name.
88 * <p>
89 * @return The name of the newsgroup.
90 ***/
91 public String getNewsgroup()
92 {
93 return __newsgroup;
94 }
95
96 /***
97 * Get the estimated number of articles in the newsgroup. The
98 * accuracy of this value will depend on the server implementation.
99 * <p>
100 * @return The estimated number of articles in the newsgroup.
101 ***/
102 public int getArticleCount()
103 {
104 return __estimatedArticleCount;
105 }
106
107 /***
108 * Get the number of the first article in the newsgroup.
109 * <p>
110 * @return The number of the first article in the newsgroup.
111 ***/
112 public int getFirstArticle()
113 {
114 return __firstArticle;
115 }
116
117 /***
118 * Get the number of the last article in the newsgroup.
119 * <p>
120 * @return The number of the last article in the newsgroup.
121 ***/
122 public int getLastArticle()
123 {
124 return __lastArticle;
125 }
126
127 /***
128 * Get the posting permission of the newsgroup. This will be one of
129 * the <code> POSTING_PERMISSION </code> constants.
130 * <p>
131 * @return The posting permission status of the newsgroup.
132 ***/
133 public int getPostingPermission()
134 {
135 return __postingPermission;
136 }
137
138 /*
139 public String toString() {
140 StringBuffer buffer = new StringBuffer();
141 buffer.append(__newsgroup);
142 buffer.append(' ');
143 buffer.append(__lastArticle);
144 buffer.append(' ');
145 buffer.append(__firstArticle);
146 buffer.append(' ');
147 switch(__postingPermission) {
148 case 1: buffer.append('m'); break;
149 case 2: buffer.append('y'); break;
150 case 3: buffer.append('n'); break;
151 }
152 return buffer.toString();
153 }
154 */
155 }