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    
018    package org.apache.geronimo.javamail.store.imap.connection;
019    import javax.mail.MessagingException;
020    
021    /**
022     * Base class for all response messages.                      
023     *
024     * @version $Rev: 594520 $ $Date: 2007-11-13 07:57:39 -0500 (Tue, 13 Nov 2007) $
025     */
026    public class IMAPResponse {
027        // The original (raw) response data
028        protected byte[] response;
029    
030        /**
031         * Create a response object from a server response line (normally, untagged).  This includes
032         * doing the parsing of the response line.
033         *
034         * @param response The response line used to create the reply object.
035         */
036        protected IMAPResponse(byte [] response) {
037            // set this as the current message and parse.
038            this.response = response;
039        }
040        
041        /**
042         * Retrieve the raw response line data for this 
043         * response message.  Normally, this will be a complete
044         * single line response, unless there are quoted 
045         * literals in the response data containing octet
046         * data. 
047         * 
048         * @return The byte array containing the response information.
049         */
050        public byte[] getResponseData() {
051            return response; 
052        }
053    
054        /**
055         * Return the response message as a string value.  
056         * This is intended for debugging purposes only.  The 
057         * response data might contain octet data that 
058         * might not convert to character data appropriately. 
059         * 
060         * @return The string version of the response. 
061         */
062        public String toString() {
063            return new String(response);
064        }
065    }
066