org.apache.commons.httpclient.methods.multipart

Class Part

Known Direct Subclasses:
PartBase

public abstract class Part
extends java.lang.Object

Abstract class for one Part of a multipart post object.
Authors:
Matthew Albright
Jeff Dever
Adrian Sutton
Mike Bowler
Oleg Kalnichevski
Since:
2.0

Field Summary

protected static String
BOUNDARY
Deprecated. use HttpMethodParams.MULTIPART_BOUNDARY
protected static byte[]
BOUNDARY_BYTES
Deprecated.
protected static String
CHARSET
Content charset
protected static byte[]
CHARSET_BYTES
Content charset as a byte array
protected static String
CONTENT_DISPOSITION
Content dispostion characters
protected static byte[]
CONTENT_DISPOSITION_BYTES
Content dispostion as a byte array
protected static String
CONTENT_TRANSFER_ENCODING
Content type header
protected static byte[]
CONTENT_TRANSFER_ENCODING_BYTES
Content type header as a byte array
protected static String
CONTENT_TYPE
Content type header
protected static byte[]
CONTENT_TYPE_BYTES
Content type header as a byte array
protected static String
CRLF
Carriage return/linefeed
protected static byte[]
CRLF_BYTES
Carriage return/linefeed as a byte array
protected static String
EXTRA
Extra characters
protected static byte[]
EXTRA_BYTES
Extra characters as a byte array
protected static String
QUOTE
Content dispostion characters
protected static byte[]
QUOTE_BYTES
Content dispostion as a byte array

Method Summary

static String
getBoundary()
Deprecated. uses a constant string.
abstract String
getCharSet()
Return the character encoding of this part.
abstract String
getContentType()
Returns the content type of this part.
static long
getLengthOfParts(Part[] parts)
Return the total sum of all parts and that of the last boundary
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.
protected byte[]
getPartBoundary()
Gets the part boundary to be used.
abstract String
getTransferEncoding()
Return the transfer encoding of this part.
boolean
isRepeatable()
Tests if this part can be sent more than once.
long
length()
Return the full length of all the data.
protected abstract long
lengthOfData()
Return the length of the main content
void
send(OutputStream out)
Write all the data to the 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
sendParts(OutputStream out, Part[] parts)
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)
Write the start to the specified output stream
protected void
sendTransferEncodingHeader(OutputStream out)
Write the content transfer encoding header to the specified output stream
String
toString()
Return a string representation of this object.

Field Details

BOUNDARY

protected static final String BOUNDARY

Deprecated. use HttpMethodParams.MULTIPART_BOUNDARY

The boundary

BOUNDARY_BYTES

protected static final byte[] BOUNDARY_BYTES

Deprecated.

The boundary as a byte array.

CHARSET

protected static final String CHARSET
Content charset

CHARSET_BYTES

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

CONTENT_DISPOSITION

protected static final String CONTENT_DISPOSITION
Content dispostion characters

CONTENT_DISPOSITION_BYTES

protected static final byte[] CONTENT_DISPOSITION_BYTES
Content dispostion as a byte array

CONTENT_TRANSFER_ENCODING

protected static final String CONTENT_TRANSFER_ENCODING
Content type header

CONTENT_TRANSFER_ENCODING_BYTES

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

CONTENT_TYPE

protected static final String CONTENT_TYPE
Content type header

CONTENT_TYPE_BYTES

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

CRLF

protected static final String CRLF
Carriage return/linefeed

CRLF_BYTES

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

EXTRA

protected static final String EXTRA
Extra characters

EXTRA_BYTES

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

QUOTE

protected static final String QUOTE
Content dispostion characters

QUOTE_BYTES

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

Method Details

getBoundary

public static String getBoundary()

Deprecated. uses a constant string. Rather use getPartBoundary()

Return the boundary string.
Returns:
the boundary string

getCharSet

public abstract String getCharSet()
Return the character encoding of this part.
Returns:
the character encoding, or null to exclude the character encoding header

getContentType

public abstract String getContentType()
Returns the content type of this part.
Returns:
the content type, or null to exclude the content type header

getLengthOfParts

public static long getLengthOfParts(Part[] parts)
            throws IOException
Return the total sum of all parts and that of the last boundary
Parameters:
parts - The parts.
Returns:
The total length

getLengthOfParts

public static long getLengthOfParts(Part[] parts,
                                    byte[] partBoundary)
            throws IOException
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
Since:
3.0

getName

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

getPartBoundary

protected byte[] getPartBoundary()
Gets the part boundary to be used.
Returns:
the part boundary as an array of bytes.
Since:
3.0

getTransferEncoding

public abstract String getTransferEncoding()
Return the transfer encoding of this part.
Returns:
the transfer encoding, or null to exclude the transfer encoding header

isRepeatable

public boolean isRepeatable()
Tests if this part can be sent more than once.
Returns:
true if sendData(OutputStream) can be successfully called more than once.
Since:
3.0

length

public long length()
            throws IOException
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.

lengthOfData

protected abstract long lengthOfData()
            throws IOException
Return the length of the main content
Returns:
long The length.

send

public void send(OutputStream out)
            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

sendContentTypeHeader

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

sendData

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

sendDispositionHeader

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

sendEnd

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

sendEndOfHeader

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

sendParts

public static void sendParts(OutputStream out,
                             Part[] parts)
            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.

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.
Since:
3.0

sendStart

protected void sendStart(OutputStream out)
            throws IOException
Write the start to the specified output stream
Parameters:
out - The output stream

sendTransferEncodingHeader

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

toString

public String toString()
Return a string representation of this object.
Returns:
A string representation of this object.
See Also:
java.lang.Object.toString()

Copyright (c) 1999-2005 - Apache Software Foundation