package Ġcom . library of alex and ria . cards . data . transformer Ċ Ċ import Ġcom . library of alex and ria . cards . domain . Color Ċ import Ġcom . library of alex and ria . cards . domain . Man a Cost Ċ Ċ class ĠColor Mapper Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcolors : ĠLinkedHashMap < String , ĠColor > Ġ= Ġlinked Map Of ( ĊĠĠĠĠĠĠĠ Ġ"\\ { W \\ }" Ġto ĠColor . WHITE , ĊĠĠĠĠĠĠĠ Ġ"\\ { U \\ }" Ġto ĠColor . BLUE , ĊĠĠĠĠĠĠĠ Ġ"\\ { B \\ }" Ġto ĠColor . BLACK , ĊĠĠĠĠĠĠĠ Ġ"\\ { R \\ }" Ġto ĠColor . RED , ĊĠĠĠĠĠĠĠ Ġ"\\ { G \\ }" Ġto ĠColor . GREEN , ĊĠĠĠĠĠĠĠ Ġ"\\ { X \\ }" Ġto ĠColor . COLOR LESS , ĊĠĠĠĠĠĠĠ Ġ"\\ { C \\ }" Ġto ĠColor . COLOR LESS , ĊĠĠĠĠĠĠĠ Ġ"\\ { [ 0 - 9 ]+ \\ }" Ġto ĠColor . COLOR LESS ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġtransform ( mana Cost : ĠString , Ġc mc : ĠDouble ): ĠMan a Cost Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġidentity Ġ= Ġarray ListOf < Color >() ĊĠĠĠĠĠĠĠ Ġvar Ġcost Ġ= Ġarray ListOf < Color >() ĊĊĠĠĠĠĠĠĠ Ġcolors . forEach Ġ{ Ġcolor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġcolor . key . to Regex (). findAll ( mana Cost ). count () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcount ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcost . add ( color . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! identity . contains ( color . value )) Ġidentity . add ( color . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( identity . size Ġ== Ġ 0 ) Ġidentity . add ( Color . COLOR LESS ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMan a Cost ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġman a Cost , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc mc , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġidentity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcost ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }