/* Ċ Ġ* ĠCopyright Ġ( c ) ĠIntel ĠCorporation Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . od im . simulator . tree . structure Ċ Ċ class ĠActions ( var arg Ġactions : ĠAction Element ) Ġ: ĠItem , ĠSearch able Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġfind Element ( search Pattern : ĠAny ?, Ġother : ĠString ) Ġ= Ġthis . get Actions (). find Ġ{ ĊĠĠĠĠĠĠĠ Ġit . getAction QualifiedName () Ġ== Ġother . split ("/ "). last () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġactions Ġ= Ġmutable ListOf < Action Element >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . actions . addAll ( actions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Actions () Ġ= Ġthis . actions ĊĊĠĠĠ Ġfun Ġget Action ( type : ĠAction Type ): ĠAction Element Ġ= Ġactions . single Ġ{ Ġaction Element Ġ-> Ġaction Element . action Type Ġ== Ġtype Ġ} ĊĊĠĠĠ Ġfun Ġget Action OrNull ( type : ĠAction Type ): ĠAction Element ? Ġ= Ġactions . single OrNull Ġ{ Ġaction Element Ġ-> Ġaction Element . action Type Ġ== Ġtype Ġ} ĊĊĠĠĠ Ġfun Ġadd Action ( action : ĠAction Element , ĠaddTo : ĠResource ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġaction . parent Ġ= ĠaddTo ĊĠĠĠĠĠĠĠ Ġthis . actions . add ( action ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Action ( type : ĠAction Type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . actions . remove If Ġ{ Ġit . action Type Ġ== Ġtype Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġiterator () Ġ= Ġthis . actions . iterator () Ċ } Ċ Ċ inline Ġfun ĠActions . forEach ( action : Ġ( Action Element ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfor Ġ( element Ġin Ġthis ) Ġaction ( element ) Ċ } Ċ