Package org.dspace.checker
Interface BitstreamDispatcher
-
- All Known Implementing Classes:
HandleDispatcher,IteratorDispatcher,LimitedCountDispatcher,LimitedDurationDispatcher,SimpleDispatcher
public interface BitstreamDispatcherBitstreamDispatchers are strategy objects that hand bitstream ids out to workers. Implementations must be threadsafe.
The rationale behind the use of the Sentinel pattern (rather than the more traditional iterator pattern or a cursor c.f. java.sql.ResultSet): -
- To make it easy to make implementations thread safe - multithreaded invocation of the dispatchers is seen as a next step use case. In simple terms, this requires that a single method does all the work.
- Shouldn't an exception as the sentinel, as reaching the end of a loop is not an exceptional condition.
- Author:
- Jim Downing, Grace Carpenter, Nathan Sarr
-
-
Field Summary
Fields Modifier and Type Field Description static intSENTINELThis value should be returned bynext()to indicate that there are no more values.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Bitstreamnext()Returns the next id for checking, or a sentinel value if there are no more to check.
-
-
-
Field Detail
-
SENTINEL
static final int SENTINEL
This value should be returned bynext()to indicate that there are no more values.- See Also:
- Constant Field Values
-
-
Method Detail
-
next
Bitstream next() throws SQLException
Returns the next id for checking, or a sentinel value if there are no more to check.- Returns:
- the next bitstream id, or BitstreamDispatcher.SENTINEL if there isn't another value
- Throws:
SQLException- if database error
-
-