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; 19 20 /** 21 * Provides concrete implementations of 22 * org.apache.geronimo.javamail.store.pop3.POP3Command objects representing the 23 * POP3 commands defined in rfc 1939 24 * 25 * @link http://www.faqs.org/rfcs/rfc1939.html 26 * @version $Rev: 432884 $ $Date: 2006-08-19 14:53:20 -0700 (Sat, 19 Aug 2006) $ 27 */ 28 public final class POP3CommandFactory implements POP3Constants { 29 30 public static POP3Command getCOMMAND_USER(final String user) { 31 return new POP3Command() { 32 public String getCommand() { 33 return "USER" + SPACE + user + CRLF; 34 } 35 36 public boolean isMultiLineResponse() { 37 return false; 38 } 39 }; 40 } 41 42 public static POP3Command getCOMMAND_PASS(final String passwd) { 43 return new POP3Command() { 44 public String getCommand() { 45 return "PASS" + SPACE + passwd + CRLF; 46 } 47 48 public boolean isMultiLineResponse() { 49 return false; 50 } 51 }; 52 } 53 54 public static POP3Command getCOMMAND_QUIT() { 55 return new POP3Command() { 56 public String getCommand() { 57 return "QUIT" + CRLF; 58 } 59 60 public boolean isMultiLineResponse() { 61 return false; 62 } 63 }; 64 } 65 66 public static POP3Command getCOMMAND_NOOP() { 67 return new POP3Command() { 68 public String getCommand() { 69 return "NOOP" + CRLF; 70 } 71 72 public boolean isMultiLineResponse() { 73 return false; 74 } 75 }; 76 } 77 78 public static POP3Command getCOMMAND_STAT() { 79 return new POP3Command() { 80 public String getCommand() { 81 return "STAT" + CRLF; 82 } 83 84 public boolean isMultiLineResponse() { 85 return false; 86 } 87 }; 88 } 89 90 public static POP3Command getCOMMAND_LIST() { 91 return getCOMMAND_LIST(-1); 92 } 93 94 public static POP3Command getCOMMAND_LIST(final int msgNo) { 95 return new POP3Command() { 96 public String getCommand() { 97 if (msgNo > 0) { 98 return "LIST" + SPACE + msgNo + CRLF; 99 } else { 100 return "LIST" + CRLF; 101 } 102 } 103 104 /** 105 * If a msg num is specified then the the message details will be on 106 * the first line for ex. +OK 3 4520 107 * 108 * if no msgnum is specified then all the msg details are return in 109 * a multiline format for ex. +OK 2 messages 1 456 2 46456 ..... n 110 * 366 111 */ 112 public boolean isMultiLineResponse() { 113 return (msgNo < 0); 114 } 115 }; 116 } 117 118 public static POP3Command getCOMMAND_RETR(final int msgNo) { 119 return new POP3Command() { 120 public String getCommand() { 121 return "RETR" + SPACE + msgNo + CRLF; 122 } 123 124 public boolean isMultiLineResponse() { 125 return true; 126 } 127 }; 128 } 129 130 public static POP3Command getCOMMAND_DELE(final int msgNo) { 131 return new POP3Command() { 132 public String getCommand() { 133 return "DELE" + SPACE + msgNo + CRLF; 134 } 135 136 public boolean isMultiLineResponse() { 137 return false; 138 } 139 }; 140 } 141 142 public static POP3Command getCOMMAND_REST(final int msgNo) { 143 return new POP3Command() { 144 public String getCommand() { 145 return "REST" + SPACE + msgNo + CRLF; 146 } 147 148 public boolean isMultiLineResponse() { 149 return false; 150 } 151 }; 152 } 153 154 public static POP3Command getCOMMAND_TOP(final int msgNo, final int numLines) { 155 return new POP3Command() { 156 public String getCommand() { 157 return "TOP" + SPACE + msgNo + SPACE + numLines + CRLF; 158 } 159 160 public boolean isMultiLineResponse() { 161 return true; 162 } 163 }; 164 } 165 166 public static POP3Command getCOMMAND_UIDL() { 167 return getCOMMAND_UIDL(-1); 168 } 169 170 public static POP3Command getCOMMAND_UIDL(final int msgNo) { 171 return new POP3Command() { 172 public String getCommand() { 173 if (msgNo > 0) { 174 return "UIDL" + SPACE + msgNo + CRLF; 175 } else { 176 return "UIDL" + CRLF; 177 } 178 } 179 180 public boolean isMultiLineResponse() { 181 return true; 182 } 183 }; 184 } 185 186 }