org.simpleframework.http.message
Class PartSeriesConsumer

java.lang.Object
  extended by org.simpleframework.http.message.PartSeriesConsumer
All Implemented Interfaces:
BodyConsumer, Consumer

public class PartSeriesConsumer
extends Object
implements BodyConsumer

The PartListConsumer object is used to consume a list of parts encoded in the multipart format. This is can consume any number of parts from a cursor. Each part consumed is added to an internal part list which can be used to acquire the contents of the upload and inspect the headers provided for each uploaded part. To ensure that only a fixed number of bytes are consumed this uses a content length for an internal buffer.

Author:
Niall Gallagher

Constructor Summary
PartSeriesConsumer(Allocator allocator, byte[] boundary)
          Constructor for the PartListConsumer object.
PartSeriesConsumer(Allocator allocator, byte[] boundary, long length)
          Constructor for the PartListConsumer object.
PartSeriesConsumer(Allocator allocator, PartSeries series, byte[] boundary)
          Constructor for the PartListConsumer object.
PartSeriesConsumer(Allocator allocator, PartSeries series, byte[] boundary, long length)
          Constructor for the PartListConsumer object.
 
Method Summary
 void consume(Cursor cursor)
          This is used to consume the part list from the cursor.
 Body getBody()
          This is used to acquire the body that has been consumed.
 boolean isFinished()
          This is used to determine whether the part body has been read from the cursor successfully.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PartSeriesConsumer

public PartSeriesConsumer(Allocator allocator,
                          byte[] boundary)
Constructor for the PartListConsumer object. This will create a consumer that is capable of breaking an upload in to individual parts so that they can be accessed and used by the receiver of the HTTP request message.

Parameters:
allocator - this is used to allocate the internal buffer
boundary - this is the boundary used for the upload

PartSeriesConsumer

public PartSeriesConsumer(Allocator allocator,
                          byte[] boundary,
                          long length)
Constructor for the PartListConsumer object. This will create a consumer that is capable of breaking an upload in to individual parts so that they can be accessed and used by the receiver of the HTTP request message.

Parameters:
allocator - this is used to allocate the internal buffer
boundary - this is the boundary used for the upload
length - this is the number of bytes the upload should be

PartSeriesConsumer

public PartSeriesConsumer(Allocator allocator,
                          PartSeries series,
                          byte[] boundary)
Constructor for the PartListConsumer object. This will create a consumer that is capable of breaking an upload in to individual parts so that they can be accessed and used by the receiver of the HTTP request message.

Parameters:
allocator - this is used to allocate the internal buffer
boundary - this is the boundary used for the upload
series - this is the part list used to accumulate the parts

PartSeriesConsumer

public PartSeriesConsumer(Allocator allocator,
                          PartSeries series,
                          byte[] boundary,
                          long length)
Constructor for the PartListConsumer object. This will create a consumer that is capable of breaking an upload in to individual parts so that they can be accessed and used by the receiver of the HTTP request message.

Parameters:
allocator - this is used to allocate the internal buffer
series - this is the part list used to accumulate the parts
boundary - this is the boundary used for the upload
length - this is the number of bytes the upload should be
Method Detail

getBody

public Body getBody()
This is used to acquire the body that has been consumed. This will return a body which can be used to read the content of the message, also if the request is multipart upload then all of the parts are provided as Attachment objects. Each part can then be read as an individual message.

Specified by:
getBody in interface BodyConsumer
Returns:
the body that has been consumed by this instance

consume

public void consume(Cursor cursor)
             throws IOException
This is used to consume the part list from the cursor. This initially reads the list of parts, which represents the actual content exposed via the PartList object, once the content has been consumed the terminal is consumed.

Specified by:
consume in interface Consumer
Parameters:
cursor - this is the cursor to consume the list from
Throws:
IOException

isFinished

public boolean isFinished()
This is used to determine whether the part body has been read from the cursor successfully. In order to determine if all of the bytes have been read successfully this will check to see of the terminal token had been consumed.

Specified by:
isFinished in interface Consumer
Returns:
true if the part body and terminal have been read


Copyright © 2013. All Rights Reserved.