com.ning.http.multipart
Class Part

java.lang.Object
  extended by com.ning.http.multipart.Part
All Implemented Interfaces:
Part
Direct Known Subclasses:
PartBase

public abstract class Part
extends Object
implements Part

This class is an adaptation of the Apache HttpClient implementation


Field Summary
static String CHARSET
          Content charset
static byte[] CHARSET_BYTES
          Content charset as a byte array
static String CONTENT_DISPOSITION
          Content disposition characters
static byte[] CONTENT_DISPOSITION_BYTES
          Content disposition as a byte array
static String CONTENT_ID
          Content type header
static byte[] CONTENT_ID_BYTES
          Content type header as a byte array
static String CONTENT_TRANSFER_ENCODING
          Content type header
static byte[] CONTENT_TRANSFER_ENCODING_BYTES
          Content type header as a byte array
static String CONTENT_TYPE
          Content type header
static byte[] CONTENT_TYPE_BYTES
          Content type header as a byte array
static String CRLF
          Carriage return/linefeed
static byte[] CRLF_BYTES
          Carriage return/linefeed as a byte array
static String EXTRA
          Extra characters
static byte[] EXTRA_BYTES
          Extra characters as a byte array
static String FORM_DATA_DISPOSITION_TYPE
          form-data characters
static byte[] FORM_DATA_DISPOSITION_TYPE_BYTES
          form-data as a byte array
static String NAME
          name characters
static byte[] NAME_BYTES
          name as a byte array
static String QUOTE
          Content dispostion characters
static byte[] QUOTE_BYTES
          Content dispostion as a byte array
 
Constructor Summary
Part()
           
 
Method Summary
protected  long contentIdHeaderLength()
           
protected  long contentTypeHeaderLength()
           
protected  long dispositionHeaderLength()
           
protected  long endLength()
           
protected  long endOfHeaderLength()
           
abstract  String getCharSet()
          Return the character encoding of this part.
abstract  String getContentId()
          Return the content ID of this part.
abstract  String getContentType()
          Returns the content type of this part.
 String getDispositionType()
          Gets the disposition-type to be used in Content-Disposition header
static long getLengthOfParts(Part[] parts, byte[] partBoundary)
          Gets the length of the multipart message including the given parts.
abstract  String getName()
          Return the name of this part.
abstract  String getTransferEncoding()
          Return the transfer encoding of this part.
 long length(byte[] boundary)
          Return the full length of all the data.
protected abstract  long lengthOfData()
          Return the length of the main content
 void send(OutputStream out, byte[] boundary)
          Write all the data to the output stream.
protected  void sendContentIdHeader(OutputStream out)
          Write the content ID header to the specified output stream
protected  void sendContentTypeHeader(OutputStream out)
          Write the content type header to the specified output stream
protected abstract  void sendData(OutputStream out)
          Write the data to the specified output stream
protected  void sendDispositionHeader(OutputStream out)
          Write the content disposition header to the specified output stream
protected  void sendEnd(OutputStream out)
          Write the end data to the output stream.
protected  void sendEndOfHeader(OutputStream out)
          Write the end of the header to the output stream
static void sendMessageEnd(OutputStream out, byte[] partBoundary)
           
static void sendPart(OutputStream out, Part part, byte[] partBoundary)
          Write all parts and the last boundary to the specified output stream.
static void sendParts(OutputStream out, Part[] parts, byte[] partBoundary)
          Write all parts and the last boundary to the specified output stream.
protected  void sendStart(OutputStream out, byte[] boundary)
          Write the start to the specified output stream
protected  void sendTransferEncodingHeader(OutputStream out)
          Write the content transfer encoding header to the specified output stream
 void setDispositionType(String dispositionType)
           
 String toString()
          Return a string representation of this object.
protected  long transferEncodingHeaderLength()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CRLF

public static final String CRLF
Carriage return/linefeed

See Also:
Constant Field Values

CRLF_BYTES

public static final byte[] CRLF_BYTES
Carriage return/linefeed as a byte array


QUOTE

public static final String QUOTE
Content dispostion characters

See Also:
Constant Field Values

QUOTE_BYTES

public static final byte[] QUOTE_BYTES
Content dispostion as a byte array


EXTRA

public static final String EXTRA
Extra characters

See Also:
Constant Field Values

EXTRA_BYTES

public static final byte[] EXTRA_BYTES
Extra characters as a byte array


CONTENT_DISPOSITION

public static final String CONTENT_DISPOSITION
Content disposition characters

See Also:
Constant Field Values

CONTENT_DISPOSITION_BYTES

public static final byte[] CONTENT_DISPOSITION_BYTES
Content disposition as a byte array


FORM_DATA_DISPOSITION_TYPE

public static final String FORM_DATA_DISPOSITION_TYPE
form-data characters

See Also:
Constant Field Values

FORM_DATA_DISPOSITION_TYPE_BYTES

public static final byte[] FORM_DATA_DISPOSITION_TYPE_BYTES
form-data as a byte array


NAME

public static final String NAME
name characters

See Also:
Constant Field Values

NAME_BYTES

public static final byte[] NAME_BYTES
name as a byte array


CONTENT_TYPE

public static final String CONTENT_TYPE
Content type header

See Also:
Constant Field Values

CONTENT_TYPE_BYTES

public static final byte[] CONTENT_TYPE_BYTES
Content type header as a byte array


CHARSET

public static final String CHARSET
Content charset

See Also:
Constant Field Values

CHARSET_BYTES

public static final byte[] CHARSET_BYTES
Content charset as a byte array


CONTENT_TRANSFER_ENCODING

public static final String CONTENT_TRANSFER_ENCODING
Content type header

See Also:
Constant Field Values

CONTENT_TRANSFER_ENCODING_BYTES

public static final byte[] CONTENT_TRANSFER_ENCODING_BYTES
Content type header as a byte array


CONTENT_ID

public static final String CONTENT_ID
Content type header

See Also:
Constant Field Values

CONTENT_ID_BYTES

public static final byte[] CONTENT_ID_BYTES
Content type header as a byte array

Constructor Detail

Part

public Part()
Method Detail

getName

public abstract String getName()
Return the name of this part.

Specified by:
getName in interface Part
Returns:
The name.

getContentType

public abstract String getContentType()
Returns the content type of this part.

Returns:
the content type, or null to exclude the content type header

getCharSet

public abstract String getCharSet()
Return the character encoding of this part.

Returns:
the character encoding, or null to exclude the character encoding header

getTransferEncoding

public abstract String getTransferEncoding()
Return the transfer encoding of this part.

Returns:
the transfer encoding, or null to exclude the transfer encoding header

getContentId

public abstract String getContentId()
Return the content ID of this part.

Returns:
the content ID, or null to exclude the content ID header

getDispositionType

public String getDispositionType()
Gets the disposition-type to be used in Content-Disposition header

Returns:
the disposition-type

setDispositionType

public void setDispositionType(String dispositionType)

sendStart

protected void sendStart(OutputStream out,
                         byte[] boundary)
                  throws IOException
Write the start to the specified output stream

Parameters:
out - The output stream
boundary - the boundary
Throws:
IOException - If an IO problem occurs.

sendDispositionHeader

protected void sendDispositionHeader(OutputStream out)
                              throws IOException
Write the content disposition header to the specified output stream

Parameters:
out - The output stream
Throws:
IOException - If an IO problem occurs.

dispositionHeaderLength

protected long dispositionHeaderLength()

sendContentTypeHeader

protected void sendContentTypeHeader(OutputStream out)
                              throws IOException
Write the content type header to the specified output stream

Parameters:
out - The output stream
Throws:
IOException - If an IO problem occurs.

contentTypeHeaderLength

protected long contentTypeHeaderLength()

sendTransferEncodingHeader

protected void sendTransferEncodingHeader(OutputStream out)
                                   throws IOException
Write the content transfer encoding header to the specified output stream

Parameters:
out - The output stream
Throws:
IOException - If an IO problem occurs.

transferEncodingHeaderLength

protected long transferEncodingHeaderLength()

sendContentIdHeader

protected void sendContentIdHeader(OutputStream out)
                            throws IOException
Write the content ID header to the specified output stream

Parameters:
out - The output stream
Throws:
IOException - If an IO problem occurs.

contentIdHeaderLength

protected long contentIdHeaderLength()

sendEndOfHeader

protected void sendEndOfHeader(OutputStream out)
                        throws IOException
Write the end of the header to the output stream

Parameters:
out - The output stream
Throws:
IOException - If an IO problem occurs.

endOfHeaderLength

protected long endOfHeaderLength()

sendData

protected abstract void sendData(OutputStream out)
                          throws IOException
Write the data to the specified output stream

Parameters:
out - The output stream
Throws:
IOException - If an IO problem occurs.

lengthOfData

protected abstract long lengthOfData()
Return the length of the main content

Returns:
long The length.

sendEnd

protected void sendEnd(OutputStream out)
                throws IOException
Write the end data to the output stream.

Parameters:
out - The output stream
Throws:
IOException - If an IO problem occurs.

endLength

protected long endLength()

send

public void send(OutputStream out,
                 byte[] boundary)
          throws IOException
Write all the data to the output stream. If you override this method make sure to override #length() as well

Parameters:
out - The output stream
boundary - the boundary
Throws:
IOException - If an IO problem occurs.

length

public long length(byte[] boundary)
Return the full length of all the data. If you override this method make sure to override #send(OutputStream) as well

Returns:
long The length.
Throws:
IOException - If an IO problem occurs

toString

public String toString()
Return a string representation of this object.

Overrides:
toString in class Object
Returns:
A string representation of this object.
See Also:
Object.toString()

sendParts

public static void sendParts(OutputStream out,
                             Part[] parts,
                             byte[] partBoundary)
                      throws IOException
Write all parts and the last boundary to the specified output stream.

Parameters:
out - The stream to write to.
parts - The parts to write.
partBoundary - The ASCII bytes to use as the part boundary.
Throws:
IOException - If an I/O error occurs while writing the parts.
Since:
3.0

sendMessageEnd

public static void sendMessageEnd(OutputStream out,
                                  byte[] partBoundary)
                           throws IOException
Throws:
IOException

sendPart

public static void sendPart(OutputStream out,
                            Part part,
                            byte[] partBoundary)
                     throws IOException
Write all parts and the last boundary to the specified output stream.

Parameters:
out - The stream to write to.
part - The part to write.
Throws:
IOException - If an I/O error occurs while writing the parts.
Since:
N/A

getLengthOfParts

public static long getLengthOfParts(Part[] parts,
                                    byte[] partBoundary)
Gets the length of the multipart message including the given parts.

Parameters:
parts - The parts.
partBoundary - The ASCII bytes to use as the part boundary.
Returns:
The total length
Throws:
IOException - If an I/O error occurs while writing the parts.
Since:
3.0


Copyright © 2014. All Rights Reserved.