package Ġcom . alg ol ia . search . dsl . attributes Ċ Ċ import Ġcom . alg ol ia . search . dsl . DSL Ċ import Ġcom . alg ol ia . search . dsl . DSL Parameters Ċ import Ġcom . alg ol ia . search . model . Attribute Ċ Ċ /** Ċ Ġ* ĠDSL Ġfor Ġbuilding Ġa Ġ[ List ] Ġof Ġ[ Attribute ]. Ċ Ġ*/ Ċ @ DSL Parameters Ċ public Ġclass ĠDSL Attributes ( ĊĠĠĠ Ġprivate Ġval Ġattributes : ĠMutable List < Attribute > Ġ= Ġmutable ListOf () Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConvenience Ġmethod . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġoperator Ġfun ĠString . unary Plus () Ġ{ ĊĠĠĠĠĠĠĠ Ġ+ Attribute ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġ[ this ] Ġto Ġ[ attributes ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġoperator Ġfun ĠAttribute . unary Plus () Ġ{ ĊĠĠĠĠĠĠĠ Ġattributes Ġ+= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ: ĠDSL < DSL Attributes , ĠList < Attribute >> Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġoperator Ġfun Ġinvoke ( block : ĠDSL Attributes . () Ġ-> ĠUnit ): ĠList < Attribute > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDSL Attributes (). apply ( block ). attributes ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ