125 lines
4.1 KiB
Java
125 lines
4.1 KiB
Java
/*
|
|
* The contents of this file are subject to the Netscape Public
|
|
* License Version 1.1 (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.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is the Netscape Messaging Access SDK Version 3.5 code,
|
|
* released on or about June 15, 1998. *
|
|
* The Initial Developer of the Original Code is Netscape Communications
|
|
* Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All
|
|
* Rights Reserved.
|
|
*
|
|
* Contributor(s): ______________________________________.
|
|
*/
|
|
|
|
/*
|
|
* Copyright (c) 1997 and 1998 Netscape Communications Corporation
|
|
* (http://home.netscape.com/misc/trademarks.html)
|
|
*/
|
|
|
|
package netscape.messaging.mime;
|
|
|
|
import java.io.InputStream;
|
|
import java.io.ByteArrayInputStream;
|
|
import netscape.messaging.mime.log;
|
|
import netscape.messaging.mime.MIMEParser;
|
|
|
|
/**
|
|
* The MIMEDynamicParser class defines the MIME Dynamic Parser.
|
|
* @author Carson Lee
|
|
* @version 1.0
|
|
* Dec 17,97
|
|
*/
|
|
|
|
// @author Carson Lee
|
|
// @version %I%, %G%
|
|
public final class MIMEDynamicParser
|
|
{
|
|
protected MIMEParser p = null;
|
|
|
|
/**
|
|
* Constructor for the Dynamic Parser.
|
|
* @param dataSink User's datasink for callbacks. Cannot be null.
|
|
* @param decodeData Whether the parser should decode message body-part data; if
|
|
* true, the parser decodes the data; if false, the parser stores or returns raw data.
|
|
* @param localStorage Whether the parser should save references to all callback data
|
|
* and build up the MIMEMessage that is available as a whole after endParse().
|
|
* If true, the parser manages data locally; if false, the does not save references to
|
|
* data supplied through callbacks.
|
|
* @return New MIMEParser object
|
|
* @exception MIMEException If dataSink is null or an error occurs.
|
|
*/
|
|
private MIMEDynamicParser( MIMEDataSink dataSink,
|
|
boolean decodeData,
|
|
boolean localStorage ) throws MIMEException
|
|
{
|
|
p = new MIMEParser( dataSink, decodeData, localStorage );
|
|
}
|
|
|
|
/**
|
|
* Constructor for the Dynamic Parser.
|
|
* @param dataSink User's datasink for callbacks. Cannot be null.
|
|
* @return New MIMEParser object
|
|
* @exception MIMEException If dataSink is null or an error occurs.
|
|
*/
|
|
public MIMEDynamicParser (MIMEDataSink dataSink) throws MIMEException
|
|
{
|
|
p = new MIMEParser (dataSink, false, false);
|
|
}
|
|
|
|
|
|
/**
|
|
* Begins a new parse cycle and resets parser internal data-structures.
|
|
* This method is called when the user wants to initiate message parsing.
|
|
* @exception MIMEException If the parser object was not properly set-up.
|
|
*/
|
|
public void beginParse() throws MIMEException
|
|
{
|
|
p.beginParse();
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Parse more incoming data.
|
|
* This method can be called several times between beginParse() and endParse().
|
|
* @param input User's input-stream. Source of data for parse operation.
|
|
* @exception MIMEException If parser detects MIME format errors.
|
|
*/
|
|
public void parse( InputStream input ) throws MIMEException
|
|
{
|
|
p.parse( input );
|
|
}
|
|
|
|
|
|
/**
|
|
* Parses more incoming data.
|
|
* This method can be called several times between beginParse() and endParse().
|
|
* @param inputData User's input. Source of data for parse operation.
|
|
* @exception MIMEException If parser detects MIME format errors.
|
|
*/
|
|
public void parse (byte [] inputData) throws MIMEException
|
|
{
|
|
parse (new ByteArrayInputStream (inputData));
|
|
}
|
|
|
|
|
|
/**
|
|
* Ends parse. Tells parser there is no more data to parse.
|
|
* Parser winds up parse operation of the message being parsed.
|
|
* @exception MIMEException If parser detects MIME format errors.
|
|
*/
|
|
public void endParse() throws MIMEException
|
|
{
|
|
p.endParse();
|
|
}
|
|
}
|