package Ġcom . k ne el awk . mar ion ette . gradle . signal Ċ Ċ import Ġgro ovy . lang . Closure Ċ import Ġorg . gradle . api . Action Ċ import Ġorg . gradle . api . Named Domain Object Container Ċ import Ġorg . gradle . api . model . ObjectFactory Ċ import Ġorg . gradle . api . tasks . Input Ċ import Ġjava . io . Serializable Ċ import Ġjavax . inject . Inject Ċ Ċ open Ġclass ĠMar ion ette Signals Ġ@ Inject Ġconstructor ( object Factory : ĠObject Factory ) Ġ: ĠSerializable Ġ{ ĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġval Ġsignals : ĠNamed Domain Object Container < Mar ion ette Signal > Ġ= ĊĠĠĠĠĠĠĠ Ġobject Factory . domain Object Container ( Mar ion ette Signal :: class . java ) Ġ{ Ġname Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Factory . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMar ion ette Signal :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ Ġtype Ġ= Ġ" one Shot " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġone Shot ( name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsignals . create ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= Ġ" one Shot " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġone Shot ( name : ĠString , Ġaction : ĠAction < Mar ion ette Signal >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsignals . create ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= Ġ" one Shot " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction . execute ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġone Shot ( name : ĠString , Ġclosure : ĠClosure < Unit >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsignals . create ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= Ġ" one Shot " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclosure . delegate Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclosure . call ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġre usable ( name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsignals . create ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= Ġ" reusable " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġre usable ( name : ĠString , Ġaction : ĠAction < Mar ion ette Signal >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsignals . create ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= Ġ" reusable " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction . execute ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġre usable ( name : ĠString , Ġclosure : ĠClosure < Unit >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsignals . create ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= Ġ" reusable " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclosure . delegate Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclosure . call ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrepeated ( name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsignals . create ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= Ġ" repeated " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrepeated ( name : ĠString , Ġaction : ĠAction < Mar ion ette Signal >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsignals . create ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= Ġ" repeated " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction . execute ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrepeated ( name : ĠString , Ġclosure : ĠClosure < Unit >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsignals . create ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= Ġ" repeated " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclosure . delegate Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclosure . call ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsignals ( action : ĠAction < Named Domain Object Container < Mar ion ette Signal >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġaction . execute ( signals ) ĊĠĠĠ Ġ} Ċ }