158 lines
5.9 KiB
Java
158 lines
5.9 KiB
Java
/*
|
|
* The contents of this file are subject to the Netscape Public License
|
|
* Version 1.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.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.convenience;
|
|
|
|
import java.io.*;
|
|
import java.net.*;
|
|
import java.util.*;
|
|
|
|
/**
|
|
* The IMAttachment class represents a MIME attachment for an
|
|
* email message.
|
|
* @author Prasad Yendluri
|
|
*/
|
|
public class IMAttachment
|
|
{
|
|
protected int content_type;
|
|
protected String content_subtype;
|
|
protected String content_params;
|
|
protected int content_disposition;
|
|
protected int mime_encoding;
|
|
protected InputStream attach_stream;
|
|
protected String attach_file;
|
|
|
|
/**
|
|
* Constructor for an IMAttachment object.
|
|
*
|
|
* @param dataStream InputStream to attachment data. Cannot be null.
|
|
* @param contentPrimaryType Primary content-type of the message.
|
|
* @see IMTransport#TEXT
|
|
* @see IMTransport#AUDIO
|
|
* @see IMTransport#IMAGE
|
|
* @see IMTransport#VIDEO
|
|
* @see IMTransport#APPLICATION
|
|
* @param contentSubType Strings representing the content sub-types.
|
|
* @param contentParameters Strings representing the content-type parameters.
|
|
* @param contentDisposition Can only be IMTransport.INLINE or IMTransport.ATTACHMENT
|
|
* @see IMTransport#INLINE
|
|
* @see IMTransport#ATTACHMENT
|
|
* @param encodings Can only be IMTransport.BASE64 or IMTransport.QP or IMTransport.NONE
|
|
* @see IMTransport#BASE64
|
|
* @see IMTransport#QP
|
|
* @see IMTransport#NONE
|
|
*/
|
|
public IMAttachment (InputStream dataStream,
|
|
int contentPrimaryType,
|
|
String contentSubType,
|
|
String contentParameters,
|
|
int contentDisposition,
|
|
int encoding) throws IMException
|
|
{
|
|
if (dataStream == null)
|
|
throw new IMException ("Invalid Parameter: dataStream = null");
|
|
|
|
if (contentPrimaryType < IMTransport.TEXT ||
|
|
contentPrimaryType > IMTransport.APPLICATION)
|
|
throw new IMException ("Invalid Parameter: contentPrimaryType = "
|
|
+ contentPrimaryType);
|
|
if (contentSubType == null)
|
|
throw new IMException ("Invalid parameter: contentSubType = null");
|
|
|
|
if (contentDisposition > 0 && contentDisposition != IMTransport.INLINE &&
|
|
contentDisposition != IMTransport.ATTACHMENT)
|
|
throw new IMException ("Invalid parameter: contentDisposition = "
|
|
+ contentDisposition);
|
|
|
|
if (encoding > -1 && encoding != IMTransport.BASE64 && encoding != IMTransport.QP &&
|
|
encoding != IMTransport.NONE)
|
|
throw new IMException ("Invalid parameter: encoding = " + encoding);
|
|
|
|
attach_stream = dataStream;
|
|
attach_file = null;
|
|
content_type = contentPrimaryType;
|
|
content_subtype = contentSubType;
|
|
content_params = contentParameters;
|
|
content_disposition = contentDisposition;
|
|
mime_encoding = encoding;
|
|
}
|
|
|
|
|
|
/**
|
|
* Constructor for an IMAttachment object that includes a filename.
|
|
* @param fullfileName Full name (including path) of a file that contains attachment data.
|
|
* @param contentPrimaryType Primary content-type of the message.
|
|
* @see IMTransport#TEXT
|
|
* @see IMTransport#AUDIO
|
|
* @see IMTransport#IMAGE
|
|
* @see IMTransport#VIDEO
|
|
* @see IMTransport#APPLICATION
|
|
* @param contentSubType Strings representing the content sub-types.
|
|
* @param contentParameters Strings representing the content-type parameters.
|
|
* @param contentDisposition Can only be IMTransport.INLINE or IMTransport.ATTACHMENT
|
|
* @see IMTransport#INLINE
|
|
* @see IMTransport#ATTACHMENT
|
|
* @param encodings Can only be IMTransport.BASE64 or IMTransport.QP or IMTransport.NONE
|
|
* @see IMTransport#BASE64
|
|
* @see IMTransport#QP
|
|
* @see IMTransport#NONE
|
|
*/
|
|
public IMAttachment (String fullfileName,
|
|
int contentPrimaryType,
|
|
String contentSubType,
|
|
String contentParameters,
|
|
int contentDisposition,
|
|
int encoding) throws IMException
|
|
{
|
|
|
|
if (fullfileName == null)
|
|
throw new IMException ("Invalid Parameter: fullfileName = null");
|
|
|
|
if ((contentPrimaryType > -1) && (contentPrimaryType < IMTransport.TEXT ||
|
|
contentPrimaryType > IMTransport.APPLICATION))
|
|
throw new IMException ("Invalid Parameter: contentPrimaryType = "
|
|
+ contentPrimaryType);
|
|
|
|
if (contentSubType == null && contentPrimaryType > -1)
|
|
throw new IMException ("Invalid parameter: contentSubType = null");
|
|
|
|
if (contentDisposition > 0 && contentDisposition != IMTransport.INLINE &&
|
|
contentDisposition != IMTransport.ATTACHMENT)
|
|
throw new IMException ("Invalid parameter: contentDisposition = "
|
|
+ contentDisposition);
|
|
if (encoding > -1 && encoding != IMTransport.BASE64 && encoding != IMTransport.QP &&
|
|
encoding != IMTransport.NONE)
|
|
throw new IMException ("Invalid parameter: encoding = " + encoding);
|
|
|
|
attach_stream = null;
|
|
attach_file = fullfileName;
|
|
content_type = contentPrimaryType;
|
|
content_subtype = contentSubType;
|
|
content_params = contentParameters;
|
|
content_disposition = contentDisposition;
|
|
mime_encoding = encoding;
|
|
}
|
|
}
|