package Ġio . pol ymorphic p anda . k spec . engine . execution Ċ Ċ import Ġio . pol ymorphic p anda . k spec . context . Context Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ@ author ĠR anie ĠJ ade ĠRam iso Ċ Ġ*/ Ċ class ĠExecution Notifier Ġ{ ĊĠĠĠĠ Ġval Ġlisteners Ġ= ĠLinkedList < Execution Listener >() ĊĊĠĠĠ Ġfun Ġadd Listener ( listener : ĠExecution Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . add ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Listener ( listener : ĠExecution Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . remove ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġfun Ġnotify Example Group Started ( group : ĠContext . Example Group ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . forEach Ġ{ Ġit . example Group Started ( group ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġfun Ġnotify Example Group Finished ( group : ĠContext . Example Group , Ġresult : ĠExecution Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . forEach Ġ{ Ġit . example Group Finished ( group , Ġresult ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġfun Ġnotify Example Started ( example : ĠContext . Example ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . forEach Ġ{ Ġit . example Started ( example ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġfun Ġnotify Example Finished ( example : ĠContext . Example , Ġresult : ĠExecution Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . forEach Ġ{ Ġit . example Finished ( example , Ġresult ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġfun Ġnotify Execution Started () Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . forEach Ġ{ Ġit . execution Started () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġfun Ġnotify Execution Finished () Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . forEach Ġ{ Ġit . execution Finished () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġfun Ġnotify Example Group Ignored ( group : ĠContext . Example Group ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . forEach Ġ{ Ġit . example Group Ignored ( group ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠĠ Ġfun Ġnotify Example Ignored ( example : ĠContext . Example ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . forEach Ġ{ Ġit . example Ignored ( example ) Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ