Class StepContext
- java.lang.Object
- org.springframework.batch.repeat.context.SynchronizedAttributeAccessor
- org.springframework.batch.core.scope.context.StepContext
- All Implemented Interfaces:
org.springframework.core.AttributeAccessor
public class StepContext extends SynchronizedAttributeAccessor
A context object that can be used to interrogate the currentStepExecution
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 theExecutionContext
associated with the step or its enclosing job execution.- Author:
- Dave Syer, Michael Minella, Mahmoud Ben Hassine
Constructor Summary
Constructors Constructor Description StepContext(StepExecution stepExecution)
Create a new instance ofStepContext
for thisStepExecution
.StepContext(StepExecution stepExecution, BatchPropertyContext propertyContext)
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Clean up the context at the end of a step execution.boolean
equals(java.lang.Object other)
Extend the base class method to include the step execution itself as a key (i.e.java.lang.String
getId()
java.util.Map<java.lang.String,java.lang.Object>
getJobExecutionContext()
java.lang.String
getJobName()
Convenient accessor for current job name identifier.java.util.Map<java.lang.String,java.lang.Object>
getJobParameters()
java.util.Map<java.lang.String,java.lang.Object>
getPartitionPlan()
StepExecution
getStepExecution()
The currentStepExecution
that is active in this context.java.util.Map<java.lang.String,java.lang.Object>
getStepExecutionContext()
java.lang.String
getStepName()
Convenient accessor for current step name identifier.java.util.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(java.lang.String name, java.lang.Runnable callback)
Allow clients to register callbacks for clean up on close.java.lang.Object
removeAttribute(java.lang.String name)
Override base class behaviour to ensure destruction callbacks are unregistered as well as the default behaviour.java.lang.String
toString()
Methods inherited from class org.springframework.batch.repeat.context.SynchronizedAttributeAccessor
attributeNames, getAttribute, hasAttribute, setAttribute, setAttributeIfAbsent
Constructor Detail
StepContext
public StepContext(StepExecution stepExecution)
Create a new instance ofStepContext
for thisStepExecution
.- Parameters:
stepExecution
- a step execution
StepContext
public StepContext(StepExecution stepExecution, BatchPropertyContext propertyContext)
Method Detail
getStepName
public java.lang.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 java.lang.String getJobName()
Convenient accessor for current job name identifier.- Returns:
- the job name identifier of the enclosing
JobInstance
associated with the currentStepExecution
getSystemProperties
public java.util.Properties getSystemProperties()
Convenient accessor for System properties to make it easy to access them from placeholder expressions.- Returns:
- the current System properties
getStepExecutionContext
public java.util.Map<java.lang.String,java.lang.Object> getStepExecutionContext()
- Returns:
- a map containing the items from the step
ExecutionContext
getJobExecutionContext
public java.util.Map<java.lang.String,java.lang.Object> getJobExecutionContext()
- Returns:
- a map containing the items from the job
ExecutionContext
getJobParameters
public java.util.Map<java.lang.String,java.lang.Object> getJobParameters()
- Returns:
- a map containing the items from the
JobParameters
getPartitionPlan
public java.util.Map<java.lang.String,java.lang.Object> getPartitionPlan()
registerDestructionCallback
public void registerDestructionCallback(java.lang.String name, java.lang.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
@Nullable public java.lang.Object removeAttribute(java.lang.String name)
Override base class behaviour to ensure destruction callbacks are unregistered as well as the default behaviour.- Specified by:
removeAttribute
in interfaceorg.springframework.core.AttributeAccessor
- Overrides:
removeAttribute
in classSynchronizedAttributeAccessor
- 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 theStepScope
.
getStepExecution
public StepExecution getStepExecution()
The currentStepExecution
that is active in this context.- Returns:
- the current
StepExecution
getId
public java.lang.String getId()
- Returns:
- unique identifier for this context based on the step execution
equals
public boolean equals(java.lang.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 classSynchronizedAttributeAccessor
- 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 classSynchronizedAttributeAccessor
- See Also:
SynchronizedAttributeAccessor.hashCode()
toString
public java.lang.String toString()
- Overrides:
toString
in classSynchronizedAttributeAccessor