Class SimpleCompletionPolicy
- java.lang.Object
- org.springframework.batch.repeat.policy.CompletionPolicySupport
- org.springframework.batch.repeat.policy.DefaultResultCompletionPolicy
- org.springframework.batch.repeat.policy.SimpleCompletionPolicy
- All Implemented Interfaces:
CompletionPolicy
public class SimpleCompletionPolicy extends DefaultResultCompletionPolicy
Policy for terminating a batch after a fixed number of operations. Internal state is maintained and a counter incremented, so successful use of this policy requires that isComplete() is only called once per batch item. Using the standardRepeatTemplate
should ensure this contract is kept, but it needs to be carefully monitored.- Author:
- Dave Syer
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
SimpleCompletionPolicy.SimpleTerminationContext
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_CHUNK_SIZE
Constructor Summary
Constructors Constructor Description SimpleCompletionPolicy()
SimpleCompletionPolicy(int chunkSize)
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isComplete(RepeatContext context)
Terminate if the chunk size has been reached.boolean
isComplete(RepeatContext context, RepeatStatus result)
Terminate if the chunk size has been reached, or the result is null.void
setChunkSize(int chunkSize)
RepeatContext
start(RepeatContext context)
Reset the counter.java.lang.String
toString()
void
update(RepeatContext context)
Increment the counter in the context.
Field Detail
DEFAULT_CHUNK_SIZE
public static final int DEFAULT_CHUNK_SIZE
- See Also:
- Constant Field Values
Method Detail
setChunkSize
public void setChunkSize(int chunkSize)
start
public RepeatContext start(RepeatContext context)
Reset the counter.- Specified by:
start
in interfaceCompletionPolicy
- Overrides:
start
in classCompletionPolicySupport
- Parameters:
context
- the current context if one is already in progress.- Returns:
- a context object that can be used by the implementation to store internal state for a batch.
- See Also:
CompletionPolicy.start(RepeatContext)
isComplete
public boolean isComplete(RepeatContext context, RepeatStatus result)
Terminate if the chunk size has been reached, or the result is null.- Specified by:
isComplete
in interfaceCompletionPolicy
- Overrides:
isComplete
in classDefaultResultCompletionPolicy
- Parameters:
context
- the current batch context.result
- the result of the latest batch item processing.- Returns:
- true if the batch should terminate.
- Throws:
java.lang.RuntimeException
- (normally terminating the batch) if the result is itself an exception.- See Also:
CompletionPolicy.isComplete(RepeatContext, RepeatStatus)
isComplete
public boolean isComplete(RepeatContext context)
Terminate if the chunk size has been reached.- Specified by:
isComplete
in interfaceCompletionPolicy
- Overrides:
isComplete
in classDefaultResultCompletionPolicy
- Parameters:
context
- the current batch context.- Returns:
- true if the batch should terminate.
- See Also:
CompletionPolicy.isComplete(RepeatContext)
update
public void update(RepeatContext context)
Increment the counter in the context.- Specified by:
update
in interfaceCompletionPolicy
- Overrides:
update
in classCompletionPolicySupport
- Parameters:
context
- the value returned by start.- See Also:
CompletionPolicy.update(RepeatContext)
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object