\*Aware interfaces ============================================================ | When a job execution starts, a `JobExecution `__ is created for it. | This object contains information about the current execution. You will often want to access this object or one of its child to : * access provided user parameters in your components * leave some information on the job execution: logs, summary, warning... To do that, your component will need to implement an interface, telling the library that you need something. What is ``JobExecutionAwareInterface``? ------------------------------------------------------------ The `JobExecutionAwareInterface `__ will allow you to gain access to the current `JobExecution `__. .. note:: This interface is covered by `JobExecutionAwareTrait `__ for a default implementation that is most of the time sufficient. What is ``JobParametersAwareInterface``? ------------------------------------------------------------ The `JobParametersAwareInterface `__ will allow you to gain access to the `JobParameters `__ of the current execution. .. note:: This interface is covered by `JobParametersAwareTrait `__ for a default implementation that is most of the time sufficient. What is ``SummaryAwareInterface``? ------------------------------------------------------------ The `SummaryAwareInterface `__ will allow you to gain access to the `Summary `__ of the current execution. .. note:: This interface is covered by `SummaryAwareTrait `__ for a default implementation that is most of the time sufficient. How does that work exactly? ------------------------------------------------------------ There is no magic involved here, every component is responsible for propagating the context through these interfaces. In the library, you will find that : * `ItemJob `__ is propagating context to `ItemReaderInterface `__, `ItemProcessorInterface `__ and `ItemWriterInterface `__. * Every `ItemReaderInterface `__, `ItemProcessorInterface `__ and `ItemWriterInterface `__ acting as a decorator, is propagating context to their decorated element. You can add this interface to any class, but you are responsible for the context propagation. .. seealso:: | :doc:`What is an item reader? `