001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018package org.apache.commons.net.nntp; 019 020/*** 021 * NewsgroupInfo stores information pertaining to a newsgroup returned by 022 * the NNTP GROUP, LIST, and NEWGROUPS commands, implemented by 023 * {@link org.apache.commons.net.nntp.NNTPClient#selectNewsgroup selectNewsgroup } 024 * , 025 * {@link org.apache.commons.net.nntp.NNTPClient#listNewsgroups listNewsgroups } 026 * , and 027 * {@link org.apache.commons.net.nntp.NNTPClient#listNewNewsgroups listNewNewsgroups } 028 * respectively. 029 * 030 * @see NNTPClient 031 ***/ 032 033public 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 long __estimatedArticleCount; 056 private long __firstArticle; 057 private long __lastArticle; 058 private int __postingPermission; 059 060 void _setNewsgroup(String newsgroup) 061 { 062 __newsgroup = newsgroup; 063 } 064 065 void _setArticleCount(long count) 066 { 067 __estimatedArticleCount = count; 068 } 069 070 void _setFirstArticle(long first) 071 { 072 __firstArticle = first; 073 } 074 075 void _setLastArticle(long last) 076 { 077 __lastArticle = last; 078 } 079 080 void _setPostingPermission(int permission) 081 { 082 __postingPermission = permission; 083 } 084 085 /*** 086 * Get the newsgroup name. 087 * <p> 088 * @return The name of the newsgroup. 089 ***/ 090 public String getNewsgroup() 091 { 092 return __newsgroup; 093 } 094 095 /*** 096 * Get the estimated number of articles in the newsgroup. The 097 * accuracy of this value will depend on the server implementation. 098 * <p> 099 * @return The estimated number of articles in the newsgroup. 100 ***/ 101 public long getArticleCountLong() 102 { 103 return __estimatedArticleCount; 104 } 105 106 /*** 107 * Get the number of the first article in the newsgroup. 108 * <p> 109 * @return The number of the first article in the newsgroup. 110 ***/ 111 public long getFirstArticleLong() 112 { 113 return __firstArticle; 114 } 115 116 /*** 117 * Get the number of the last article in the newsgroup. 118 * <p> 119 * @return The number of the last article in the newsgroup. 120 ***/ 121 public long getLastArticleLong() 122 { 123 return __lastArticle; 124 } 125 126 /*** 127 * Get the posting permission of the newsgroup. This will be one of 128 * the <code> POSTING_PERMISSION </code> constants. 129 * <p> 130 * @return The posting permission status of the newsgroup. 131 ***/ 132 public int getPostingPermission() 133 { 134 return __postingPermission; 135 } 136 137 /* 138 public String toString() { 139 StringBuilder buffer = new StringBuilder(); 140 buffer.append(__newsgroup); 141 buffer.append(' '); 142 buffer.append(__lastArticle); 143 buffer.append(' '); 144 buffer.append(__firstArticle); 145 buffer.append(' '); 146 switch(__postingPermission) { 147 case 1: buffer.append('m'); break; 148 case 2: buffer.append('y'); break; 149 case 3: buffer.append('n'); break; 150 } 151 return buffer.toString(); 152} 153 */ 154 155 // DEPRECATED METHODS - for API compatibility only - DO NOT USE 156 157 @Deprecated 158 public int getArticleCount() { 159 return (int) __estimatedArticleCount; 160 } 161 162 @Deprecated 163 public int getFirstArticle() { 164 return (int) __firstArticle; 165 } 166 167 @Deprecated 168 public int getLastArticle() { 169 return (int) __lastArticle; 170 } 171}