// Ġtag :: task - type [] Ċ abstract Ġclass ĠSome Task Ġ: ĠDefault Task () Ġ{ ĊĊĠĠĠ Ġ@ get : Inject Ġabstract Ġval Ġfs : ĠFileSystem Operations Ġ// Ġ< 1 > ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġaction () Ġ{ ĊĠĠĠĠĠĠĠ Ġfs . copy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom (" source ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinto (" destination ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ // Ġend :: task - type [] Ċ Ċ tasks . register < Some Task >(" some Task Type ") Ċ Ċ // Ġtag :: ad - hoc - task [] Ċ interface ĠInject ed Ġ{ ĊĠĠĠ Ġ@ get : Inject Ġval Ġfs : ĠFileSystem Operations Ġ// Ġ< 1 > Ċ } Ċ tasks . register (" some Task ") Ġ{ ĊĠĠĠ Ġval Ġinjected Ġ= Ġproject . objects . newInstance < Inject ed >() Ġ// Ġ< 2 > ĊĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠ Ġinjected . fs . copy Ġ{ Ġ// Ġ< 3 > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom (" source ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinto (" destination ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ // Ġend :: ad - hoc - task [] Ċ