001 /* 002 * Copyright 2001-2005 The Apache Software Foundation 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.apache.commons.net.nntp; 017 018 /*** 019 * NewsgroupInfo stores information pertaining to a newsgroup returned by 020 * the NNTP GROUP, LIST, and NEWGROUPS commands, implemented by 021 * {@link org.apache.commons.net.nntp.NNTPClient#selectNewsgroup selectNewsgroup } 022 * , 023 * {@link org.apache.commons.net.nntp.NNTPClient#listNewsgroups listNewsgroups } 024 * , and 025 * {@link org.apache.commons.net.nntp.NNTPClient#listNewNewsgroups listNewNewsgroups } 026 * respectively. 027 * <p> 028 * <p> 029 * @author Daniel F. Savarese 030 * @see NNTPClient 031 ***/ 032 033 public final class NewsgroupInfo 034 { 035 /*** 036 * A constant indicating that the posting permission of a newsgroup is 037 * unknown. For example, the NNTP GROUP command does not return posting 038 * information, so NewsgroupInfo instances obtained from that command 039 * willhave an UNKNOWN_POSTING_PERMISSION. 040 ***/ 041 public static final int UNKNOWN_POSTING_PERMISSION = 0; 042 043 /*** A constant indicating that a newsgroup is moderated. ***/ 044 public static final int MODERATED_POSTING_PERMISSION = 1; 045 046 /*** A constant indicating that a newsgroup is public and unmoderated. ***/ 047 public static final int PERMITTED_POSTING_PERMISSION = 2; 048 049 /*** 050 * A constant indicating that a newsgroup is closed for general posting. 051 ***/ 052 public static final int PROHIBITED_POSTING_PERMISSION = 3; 053 054 private String __newsgroup; 055 private int __estimatedArticleCount; 056 private int __firstArticle, __lastArticle; 057 private int __postingPermission; 058 059 void _setNewsgroup(String newsgroup) 060 { 061 __newsgroup = newsgroup; 062 } 063 064 void _setArticleCount(int count) 065 { 066 __estimatedArticleCount = count; 067 } 068 069 void _setFirstArticle(int first) 070 { 071 __firstArticle = first; 072 } 073 074 void _setLastArticle(int last) 075 { 076 __lastArticle = last; 077 } 078 079 void _setPostingPermission(int permission) 080 { 081 __postingPermission = permission; 082 } 083 084 /*** 085 * Get the newsgroup name. 086 * <p> 087 * @return The name of the newsgroup. 088 ***/ 089 public String getNewsgroup() 090 { 091 return __newsgroup; 092 } 093 094 /*** 095 * Get the estimated number of articles in the newsgroup. The 096 * accuracy of this value will depend on the server implementation. 097 * <p> 098 * @return The estimated number of articles in the newsgroup. 099 ***/ 100 public int getArticleCount() 101 { 102 return __estimatedArticleCount; 103 } 104 105 /*** 106 * Get the number of the first article in the newsgroup. 107 * <p> 108 * @return The number of the first article in the newsgroup. 109 ***/ 110 public int getFirstArticle() 111 { 112 return __firstArticle; 113 } 114 115 /*** 116 * Get the number of the last article in the newsgroup. 117 * <p> 118 * @return The number of the last article in the newsgroup. 119 ***/ 120 public int getLastArticle() 121 { 122 return __lastArticle; 123 } 124 125 /*** 126 * Get the posting permission of the newsgroup. This will be one of 127 * the <code> POSTING_PERMISSION </code> constants. 128 * <p> 129 * @return The posting permission status of the newsgroup. 130 ***/ 131 public int getPostingPermission() 132 { 133 return __postingPermission; 134 } 135 136 /* 137 public String toString() { 138 StringBuffer buffer = new StringBuffer(); 139 buffer.append(__newsgroup); 140 buffer.append(' '); 141 buffer.append(__lastArticle); 142 buffer.append(' '); 143 buffer.append(__firstArticle); 144 buffer.append(' '); 145 switch(__postingPermission) { 146 case 1: buffer.append('m'); break; 147 case 2: buffer.append('y'); break; 148 case 3: buffer.append('n'); break; 149 } 150 return buffer.toString(); 151 } 152 */ 153 }