Package org.springframework.batch.item
Class Chunk<W>
java.lang.Object
org.springframework.batch.item.Chunk<W>
- All Implemented Interfaces:
Serializable
,Iterable<W>
Encapsulation of a list of items to be processed and possibly a list of failed items to
be skipped. To mark an item as skipped clients should iterate over the chunk using the
iterator()
method, and if there is a failure call
Chunk.ChunkIterator.remove()
on the iterator. The skipped items are then
available through the chunk.- Since:
- 2.0
- Author:
- Dave Syer, Mahmoud Ben Hassine, Jinwoo Bae
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
Special iterator for a chunk providing theChunk.ChunkIterator.remove(Throwable)
method for dynamically removing an item and adding it to the skips. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Add the item to the chunk.void
Add all items to the chunk.void
clear()
Clear the items down to signal that we are done.void
Clear only the skips list.boolean
getItems()
List<SkipWrapper<W>>
getSkips()
int
hashCode()
boolean
isBusy()
Query the chunk to see if anyone has registered an interest in keeping a reference to it.boolean
isEmpty()
boolean
isEnd()
Flag to indicate if the source data is exhausted.iterator()
Get an unmodifiable iterator for the underlying items.static <W> Chunk<W>
of
(W... items) void
setBusy
(boolean busy) Register an interest in the chunk to prevent it from being cleaned up before the flag is reset to false.void
setEnd()
Set the flag to say that this chunk represents an end of stream (there is no more data to process).void
setUserData
(Object userData) int
size()
void
Register an anonymous skip.toString()
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
Chunk
-
Chunk
-
Chunk
-
-
Method Details
-
of
-
add
Add the item to the chunk.- Parameters:
item
- the item to add
-
addAll
Add all items to the chunk.- Parameters:
items
- the items to add
-
clear
public void clear()Clear the items down to signal that we are done. -
getItems
- Returns:
- a copy of the items to be processed as an unmodifiable list
-
getSkips
- Returns:
- a copy of the skips as an unmodifiable list
-
getErrors
- Returns:
- a copy of the anonymous errors as an unmodifiable list
-
skip
Register an anonymous skip. To skip an individual item, useChunk.ChunkIterator.remove()
.- Parameters:
e
- the exception that caused the skip
-
isEmpty
public boolean isEmpty()- Returns:
- true if there are no items in the chunk
-
iterator
Get an unmodifiable iterator for the underlying items. -
size
public int size()- Returns:
- the number of items (excluding skips)
-
isEnd
public boolean isEnd()Flag to indicate if the source data is exhausted.Note: This may return false if the last chunk has the same number of items as the configured commit interval. Consequently, in such cases,there will be a last empty chunk that won't be processed. It is recommended to consider this behavior when utilizing this method.
- Returns:
- true if there is no more data to process
-
setEnd
public void setEnd()Set the flag to say that this chunk represents an end of stream (there is no more data to process). -
isBusy
public boolean isBusy()Query the chunk to see if anyone has registered an interest in keeping a reference to it.- Returns:
- the busy flag
-
setBusy
public void setBusy(boolean busy) Register an interest in the chunk to prevent it from being cleaned up before the flag is reset to false.- Parameters:
busy
- the flag to set
-
clearSkips
public void clearSkips()Clear only the skips list. -
getUserData
-
setUserData
-
toString
-
equals
-
hashCode
public int hashCode()
-