package Ġcom . re cr sn . card track . models Ċ Ċ data Ġclass ĠS ms Template ( ĊĠĠĠ Ġval Ġsend ers : ĠSet < String >, ĊĠĠĠ Ġval Ġmatch ers : ĠList < Matcher >, ĊĠĠĠ Ġval Ġbank : ĠString , ĊĠĠĠ Ġval Ġcountry : ĠString , Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġtry Parse ( sms : ĠS ms ): ĠTransaction Info ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( matcher Ġin Ġmatch ers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatch Result Ġ= Ġmatcher . pattern . match Ent ire ( sms . body ) Ġ?: Ġcontinue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrency Ġ= Ġmatcher . mapping . currency ( match Result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Ġ= Ġmatcher . mapping . amount ( match Result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmerchant Ġ= Ġmatcher . mapping . merchant ( match Result ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcard Identifier Ġ= Ġmatcher . mapping . card Identifier ( match Result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcard Type Ġ= ĠCard Type . fromString ( matcher . mapping . card Type ( match Result )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcard Ġ= ĠCard Info ( card Identifier , Ġcard Type , Ġbank , Ġcountry ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTransaction Info ( amount , Ġcurrency , Ġcard , Ġmerchant , Ġsms . date ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ } Ċ