blob: 197ca20cff430a5f27a3a5d8313ea3e5ecc97f5c [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.geronimo.javamail.store.pop3;
import java.io.InputStream;
/**
* An abstraction for POP3 Response
*
* @see org.apache.geronimo.javamail.store.pop3.response.POP3ResponseFactory
* @see org.apache.geronimo.javamail.store.pop3.response.DefaultPOP3Response
* @see org.apache.geronimo.javamail.store.pop3.response.POP3StatusResponse
*
* @version $Rev$ $Date$
*/
public interface POP3Response {
/**
* Returns the response OK, CHALLENGE or ERR
* <ul>
* <li>OK --> +OK in pop3 spec
* <li>CHALLENGE --> + in pop3 spec
* <li>ERR --> -ERR in pop3 spec
* </ul>
*/
public int getStatus();
/**
* this corresponds to the line with the status however the status will be
* removed and the remainder is returned. Ex. "+OK 132 3023673" is the first
* line of response for a STAT command this method will return "132 3023673"
*
* So any subsequent process can parse the params 132 as no of msgs and
* 3023674 as the size.
*
* @see org.apache.geronimo.javamail.store.pop3.response.POP3StatusResponse
*/
public String getFirstLine();
/**
* This way we are not restricting anybody as InputStream.class is the most
* basic type to represent an inputstream and ppl can decorate it anyway
* they want, for ex BufferedInputStream or as an InputStreamReader allowing
* maximum flexibility in using it.
*/
public InputStream getData();
}