Frames | No Frames |
1: /* 2: * IMAPResponse.java 3: * Copyright (C) 2003 The Free Software Foundation 4: * 5: * This file is part of GNU inetlib, a library. 6: * 7: * GNU inetlib is free software; you can redistribute it and/or modify 8: * it under the terms of the GNU General Public License as published by 9: * the Free Software Foundation; either version 2 of the License, or 10: * (at your option) any later version. 11: * 12: * GNU inetlib is distributed in the hope that it will be useful, 13: * but WITHOUT ANY WARRANTY; without even the implied warranty of 14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: * GNU General Public License for more details. 16: * 17: * You should have received a copy of the GNU General Public License 18: * along with this library; if not, write to the Free Software 19: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20: * 21: * Linking this library statically or dynamically with other modules is 22: * making a combined work based on this library. Thus, the terms and 23: * conditions of the GNU General Public License cover the whole 24: * combination. 25: * 26: * As a special exception, the copyright holders of this library give you 27: * permission to link this library with independent modules to produce an 28: * executable, regardless of the license terms of these independent 29: * modules, and to copy and distribute the resulting executable under 30: * terms of your choice, provided that you also meet, for each linked 31: * independent module, the terms and conditions of the license of that 32: * module. An independent module is a module which is not derived from 33: * or based on this library. If you modify this library, you may extend 34: * this exception to your version of the library, but you are not 35: * obliged to do so. If you do not wish to do so, delete this 36: * exception statement from your version. 37: */ 38: 39: package gnu.inet.imap; 40: 41: import java.util.List; 42: 43: /** 44: * An IMAP4rev1 server response. 45: * 46: * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a> 47: */ 48: public class IMAPResponse 49: { 50: 51: /** 52: * The untagged response tag. 53: */ 54: public static final String UNTAGGED = "*"; 55: 56: /** 57: * The continuation response tag. 58: */ 59: public static final String CONTINUATION = "+"; 60: 61: /** 62: * The tag for this response. 63: */ 64: protected String tag = null; 65: 66: /** 67: * The response ID. 68: */ 69: protected String id = null; 70: 71: /** 72: * The message count (for responses returning counts). 73: */ 74: protected int count = -1; 75: 76: /** 77: * The mailbox (for STATUS responses). 78: */ 79: protected String mailbox = null; 80: 81: /** 82: * The response code. 83: */ 84: protected List code = null; 85: 86: /** 87: * The human-readable text. 88: */ 89: protected String text; 90: 91: public String getTag() 92: { 93: return tag; 94: } 95: 96: public boolean isTagged() 97: { 98: return (tag != UNTAGGED && tag != CONTINUATION); 99: } 100: 101: public boolean isUntagged() 102: { 103: return (tag == UNTAGGED); 104: } 105: 106: public boolean isContinuation() 107: { 108: return (tag == CONTINUATION); 109: } 110: 111: public String getID() 112: { 113: return id; 114: } 115: 116: public int getCount() 117: { 118: return count; 119: } 120: 121: public List getResponseCode() 122: { 123: return code; 124: } 125: 126: public String getText() 127: { 128: return text; 129: } 130: 131: /** 132: * ANSI-coloured toString for debugging. 133: */ 134: public String toANSIString() 135: { 136: StringBuffer buffer = new StringBuffer(); 137: buffer.append(tag); 138: if (count != -1) 139: { 140: buffer.append(" \u001b[00;31m"); 141: buffer.append(count); 142: buffer.append("\u001b[00m"); 143: } 144: if (!isContinuation()) 145: { 146: buffer.append(" \u001b[01m"); 147: buffer.append(id); 148: buffer.append("\u001b[00m"); 149: } 150: if (mailbox != null) 151: { 152: buffer.append(" \u001b[00;35m"); 153: buffer.append(mailbox); 154: buffer.append("\u001b[00m"); 155: } 156: if (code != null) 157: { 158: buffer.append(" \u001b[00;36m"); 159: buffer.append(code); 160: buffer.append("\u001b[00m"); 161: } 162: if (text != null) 163: { 164: buffer.append(" \u001b[00;33m"); 165: buffer.append(text); 166: buffer.append("\u001b[00m"); 167: } 168: return buffer.toString(); 169: } 170: 171: public String toString() 172: { 173: StringBuffer buffer = new StringBuffer(); 174: buffer.append(tag); 175: if (count != -1) 176: { 177: buffer.append(' '); 178: buffer.append(count); 179: } 180: if (!isContinuation()) 181: { 182: buffer.append(' '); 183: buffer.append(id); 184: } 185: if (mailbox != null) 186: { 187: buffer.append(' '); 188: buffer.append(mailbox); 189: } 190: if (code != null) 191: { 192: buffer.append(' '); 193: buffer.append(code); 194: } 195: if (text != null) 196: { 197: buffer.append(' '); 198: buffer.append(text); 199: } 200: return buffer.toString(); 201: } 202: 203: }