View Javadoc

1   /**
2    *
3    * Copyright 2003-2005 The Apache Software Foundation
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  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.geronimo.javamail.store.pop3.response;
19  
20  import javax.mail.MessagingException;
21  
22  import org.apache.geronimo.javamail.store.pop3.POP3Response;
23  
24  /**
25   * This class adds functionality to the basic response by parsing the status
26   * line and obtaining specific information about num of msgs and the size
27   * 
28   * @see org.apache.geronimo.javamail.store.pop3.POP3Response
29   * @see org.apache.geronimo.javamail.store.pop3.response.DefaultPOP3Response
30   * 
31   * @version $Rev: 432884 $ $Date: 2006-08-19 14:53:20 -0700 (Sat, 19 Aug 2006) $
32   */
33  
34  public class POP3StatusResponse extends DefaultPOP3Response {
35  
36      private int numMessages = 0;
37  
38      private int size = 0;
39  
40      POP3StatusResponse(POP3Response baseRes) throws MessagingException {
41          super(baseRes.getStatus(), baseRes.getFirstLine(), baseRes.getData());
42  
43          // if ERR not worth proceeding any further
44          if (OK == getStatus()) {
45              String[] args = getFirstLine().split(SPACE);
46              try {
47                  numMessages = Integer.parseInt(args[0]);
48              } catch (NumberFormatException e) {
49                  throw new MessagingException("Invalid response for STAT command", e);
50              }
51              try {
52                  size = Integer.parseInt(args[1]);
53              } catch (NumberFormatException e) {
54                  throw new MessagingException("Invalid response for STAT command", e);
55              }
56          }
57      }
58  
59      public int getNumMessages() {
60          return numMessages;
61      }
62  
63      public int getSize() {
64          return size;
65      }
66  
67  }