org.springframework.batch.core.scope.context
Class StepContext

java.lang.Object
  extended by org.springframework.batch.repeat.context.SynchronizedAttributeAccessor
      extended by org.springframework.batch.core.scope.context.StepContext
All Implemented Interfaces:
AttributeAccessor

public class StepContext
extends SynchronizedAttributeAccessor

A context object that can be used to interrogate the current StepExecution and some of its associated properties using expressions based on bean paths. Has public getters for the step execution and convenience methods for accessing commonly used properties like the ExecutionContext associated with the step or its enclosing job execution.

Author:
Dave Syer

Constructor Summary
StepContext(StepExecution stepExecution)
          Create a new instance of StepContext for this StepExecution.
 
Method Summary
 void close()
          Clean up the context at the end of a step execution.
 boolean equals(Object other)
          Extend the base class method to include the step execution itself as a key (i.e. two contexts are only equal if their step executions are the same).
 String getId()
           
 Map<String,Object> getJobExecutionContext()
           
 String getJobName()
          Convenient accessor for current job name identifier.
 Map<String,Object> getJobParameters()
           
 StepExecution getStepExecution()
          The current StepExecution that is active in this context.
 Map<String,Object> getStepExecutionContext()
           
 String getStepName()
          Convenient accessor for current step name identifier.
 Properties getSystemProperties()
          Convenient accessor for System properties to make it easy to access them from placeholder expressions.
 int hashCode()
          Overrides the default behaviour to provide a hash code based only on the step execution.
 void registerDestructionCallback(String name, Runnable callback)
          Allow clients to register callbacks for clean up on close.
 Object removeAttribute(String name)
          Override base class behaviour to ensure destruction callbacks are unregistered as well as the default behaviour.
 String toString()
           
 
Methods inherited from class org.springframework.batch.repeat.context.SynchronizedAttributeAccessor
attributeNames, getAttribute, hasAttribute, setAttribute, setAttributeIfAbsent
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

StepContext

public StepContext(StepExecution stepExecution)
Create a new instance of StepContext for this StepExecution.

Parameters:
stepExecution - a step execution
Method Detail

getStepName

public String getStepName()
Convenient accessor for current step name identifier. Usually this is the same as the bean name of the step that is executing (but might not be e.g. in a partition).

Returns:
the step name identifier of the current StepExecution

getJobName

public String getJobName()
Convenient accessor for current job name identifier.

Returns:
the job name identifier of the enclosing JobInstance associated with the current StepExecution

getSystemProperties

public Properties getSystemProperties()
Convenient accessor for System properties to make it easy to access them from placeholder expressions.

Returns:
the current System properties

getStepExecutionContext

public Map<String,Object> getStepExecutionContext()
Returns:
a map containing the items from the step ExecutionContext

getJobExecutionContext

public Map<String,Object> getJobExecutionContext()
Returns:
a map containing the items from the job ExecutionContext

getJobParameters

public Map<String,Object> getJobParameters()
Returns:
a map containing the items from the JobParameters

registerDestructionCallback

public void registerDestructionCallback(String name,
                                        Runnable callback)
Allow clients to register callbacks for clean up on close.

Parameters:
name - the callback id (unique attribute key in this context)
callback - a callback to execute on close

removeAttribute

public Object removeAttribute(String name)
Override base class behaviour to ensure destruction callbacks are unregistered as well as the default behaviour.

Specified by:
removeAttribute in interface AttributeAccessor
Overrides:
removeAttribute in class SynchronizedAttributeAccessor
See Also:
SynchronizedAttributeAccessor.removeAttribute(String)

close

public void close()
Clean up the context at the end of a step execution. Must be called once at the end of a step execution to honour the destruction callback contract from the StepScope.


getStepExecution

public StepExecution getStepExecution()
The current StepExecution that is active in this context.

Returns:
the current StepExecution

getId

public String getId()
Returns:
unique identifier for this context based on the step execution

equals

public boolean equals(Object other)
Extend the base class method to include the step execution itself as a key (i.e. two contexts are only equal if their step executions are the same).

Overrides:
equals in class SynchronizedAttributeAccessor
See Also:
SynchronizedAttributeAccessor.equals(Object)

hashCode

public int hashCode()
Overrides the default behaviour to provide a hash code based only on the step execution.

Overrides:
hashCode in class SynchronizedAttributeAccessor
See Also:
SynchronizedAttributeAccessor.hashCode()

toString

public String toString()
Overrides:
toString in class SynchronizedAttributeAccessor


Copyright © 2013 SpringSource. All Rights Reserved.