Mozilla/mozilla/msgsdk/java/highlevel/src/IMAttachment.java
prasad%netscape.com 7bee483657 adding new srcs
git-svn-id: svn://10.0.0.236/trunk@8397 18797224-902f-48f8-a5cc-f745e15eee43
1998-08-24 21:33:09 +00:00

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;
}
}