org.springframework.batch.repeat.policy
Class SimpleCompletionPolicy

java.lang.Object
  extended by org.springframework.batch.repeat.policy.CompletionPolicySupport
      extended by org.springframework.batch.repeat.policy.DefaultResultCompletionPolicy
          extended by 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 standard RepeatTemplate should ensure this contract is kept, but it needs to be carefully monitored.

Author:
Dave Syer

Nested Class Summary
protected  class SimpleCompletionPolicy.SimpleTerminationContext
           
 
Field Summary
static int DEFAULT_CHUNK_SIZE
           
 
Constructor Summary
SimpleCompletionPolicy()
           
SimpleCompletionPolicy(int chunkSize)
           
 
Method Summary
 boolean isComplete(RepeatContext context)
          Terminate if the chunk size has been reached.
 boolean isComplete(RepeatContext context, ExitStatus 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.
 String toString()
           
 void update(RepeatContext context)
          Increment the counter in the context.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_CHUNK_SIZE

public static final int DEFAULT_CHUNK_SIZE
See Also:
Constant Field Values
Constructor Detail

SimpleCompletionPolicy

public SimpleCompletionPolicy()

SimpleCompletionPolicy

public SimpleCompletionPolicy(int chunkSize)
Method Detail

setChunkSize

public void setChunkSize(int chunkSize)

start

public RepeatContext start(RepeatContext context)
Reset the counter.

Specified by:
start in interface CompletionPolicy
Overrides:
start in class CompletionPolicySupport
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,
                          ExitStatus result)
Terminate if the chunk size has been reached, or the result is null.

Specified by:
isComplete in interface CompletionPolicy
Overrides:
isComplete in class DefaultResultCompletionPolicy
Parameters:
context - the current batch context.
result - the result of the latest batch item processing.
Returns:
true if the batch should terminate.
Throws:
RuntimeException - (normally terminating the batch) if the result is itself an exception.
See Also:
CompletionPolicy.isComplete(RepeatContext, ExitStatus)

isComplete

public boolean isComplete(RepeatContext context)
Terminate if the chunk size has been reached.

Specified by:
isComplete in interface CompletionPolicy
Overrides:
isComplete in class DefaultResultCompletionPolicy
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 interface CompletionPolicy
Overrides:
update in class CompletionPolicySupport
Parameters:
context - the value returned by start.
See Also:
CompletionPolicy.update(RepeatContext)

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2009 SpringSource. All Rights Reserved.