package Ġde . et ern al w ings . v ima . job Ċ Ċ import Ġde . et ern al w ings . v ima . event . Video Create Event Ċ import Ġde . et ern al w ings . v ima . plugin . EventType . CREATE Ċ import Ġde . et ern al w ings . v ima . plugin . PluginManager Ċ import Ġde . et ern al w ings . v ima . repository . Video Repository Ċ import Ġorg . springframework . context . Application Event Publisher Ċ import Ġorg . springframework . stereotype . Component Ċ Ċ @ Component Ċ class ĠEvent Call Step ( private Ġval Ġvideo Repository : ĠVideo Repository , Ġprivate Ġval Ġplugin Manager : ĠPlugin Manager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġapplication Event Publisher : ĠApplication Event Publisher ) Ġ{ ĊĠĠĠ Ġfun Ġexecute ( video Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvideo Ġ= Ġvideo Repository . getById ( video Id ) ĊĠĠĠĠĠĠĠ Ġapplication Event Publisher . publish Event ( Video Create Event ( this , Ġvideo )) ĊĠĠĠĠĠĠĠ Ġif ( plugin Manager . call Event ( CREATE , Ġvideo )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Repository . save ( video ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ