View Javadoc

    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  /****
    19   * NewsgroupInfo stores information pertaining to a newsgroup returned by
    20   * the NNTP GROUP, LIST, and NEWGROUPS commands, implemented by
    21   * {@link org.apache.commons.net.nntp.NNTPClient#selectNewsgroup selectNewsgroup }
    22   * ,
    23   * {@link org.apache.commons.net.nntp.NNTPClient#listNewsgroups listNewsgroups }
    24   * , and
    25   * {@link org.apache.commons.net.nntp.NNTPClient#listNewNewsgroups listNewNewsgroups }
    26   *  respectively.
    27   * <p>
    28   * <p>
    29   * @author Daniel F. Savarese
    30   * @see NNTPClient
    31   ***/
    32
    33  public final class NewsgroupInfo
    34  {
    35      /****
    36       * A constant indicating that the posting permission of a newsgroup is
    37       * unknown.  For example, the NNTP GROUP command does not return posting
    38       * information, so NewsgroupInfo instances obtained from that command
    39       * willhave an UNKNOWN_POSTING_PERMISSION.
    40       ***/
    41      public static final int UNKNOWN_POSTING_PERMISSION = 0;
    42
    43      /**** A constant indicating that a newsgroup is moderated. ***/
    44      public static final int MODERATED_POSTING_PERMISSION = 1;
    45
    46      /**** A constant indicating that a newsgroup is public and unmoderated. ***/
    47      public static final int PERMITTED_POSTING_PERMISSION = 2;
    48
    49      /****
    50       * A constant indicating that a newsgroup is closed for general posting.
    51       ***/
    52      public static final int PROHIBITED_POSTING_PERMISSION = 3;
    53
    54      private String __newsgroup;
    55      private int __estimatedArticleCount;
    56      private int __firstArticle, __lastArticle;
    57      private int __postingPermission;
    58
    59      void _setNewsgroup(String newsgroup)
    60      {
    61          __newsgroup = newsgroup;
    62      }
    63
    64      void _setArticleCount(int count)
    65      {
    66          __estimatedArticleCount = count;
    67      }
    68
    69      void _setFirstArticle(int first)
    70      {
    71          __firstArticle = first;
    72      }
    73
    74      void _setLastArticle(int last)
    75      {
    76          __lastArticle = last;
    77      }
    78
    79      void _setPostingPermission(int permission)
    80      {
    81          __postingPermission = permission;
    82      }
    83
    84      /****
    85       * Get the newsgroup name.
    86       * <p>
    87       * @return The name of the newsgroup.
    88       ***/
    89      public String getNewsgroup()
    90      {
    91          return __newsgroup;
    92      }
    93
    94      /****
    95       * Get the estimated number of articles in the newsgroup.  The
    96       * accuracy of this value will depend on the server implementation.
    97       * <p>
    98       * @return The estimated number of articles in the newsgroup.
    99       ***/
    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 }