package Ġcom . gar pr . android . data . converters Ċ Ċ import Ġcom . gar pr . android . data . models . Abs Tournament Ċ import Ġcom . gar pr . android . data . models . Full Tournament Ċ import Ġcom . gar pr . android . data . models . Lite Tournament Ċ import Ġcom . squareup . mos hi . FromJson Ċ import Ġcom . squareup . mos hi . Json Adapter Ċ import Ġcom . squareup . mos hi . Json Reader Ċ import Ġcom . squareup . mos hi . Json Writer Ċ import Ġcom . squareup . mos hi . ToJson Ċ Ċ object ĠAbs Tournament Converter Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠMATCH ES Ġ= Ġ 0 Ġto Ġ" matches " ĊĠĠĠ Ġprivate Ġval ĠP LAY ERS Ġ= Ġ 1 Ġto Ġ" players " ĊĊĠĠĠ Ġprivate Ġval ĠOPTIONS Ġ= ĠJson Reader . Options . of ( MATCH ES . second , ĠP LAY ERS . second ) ĊĊĠĠĠ Ġ@ FromJson ĊĠĠĠ Ġfun Ġfrom Json ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreader : ĠJson Reader , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfull Tournament Adapter : ĠJson Adapter < Full Tournament >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlite Tournament Adapter : ĠJson Adapter < Lite Tournament > ĊĠĠĠ Ġ): ĠAbs Tournament ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( reader . peek () Ġ== ĠJson Reader . Token . NULL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġreader . next Null () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġinner Reader Ġ= Ġreader . peek Json () ĊĠĠĠĠĠĠĠ Ġinner Reader . begin Object () ĊĊĠĠĠĠĠĠĠ Ġvar Ġhas Matches Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġhas Players Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( inner Reader . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( inner Reader . select Name ( OPTIONS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMATCH ES . first Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Matches Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinner Reader . skip Value () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP LAY ERS . first Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Players Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinner Reader . skip Value () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinner Reader . skip Name () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinner Reader . skip Value () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinner Reader . end Object () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( has Matches Ġ|| Ġhas Players ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfull Tournament Adapter . fromJson ( reader ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlite Tournament Adapter . fromJson ( reader ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ ToJson ĊĠĠĠ Ġfun ĠtoJson ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter : ĠJson Writer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue : ĠAbs Tournament ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfull Tournament Adapter : ĠJson Adapter < Full Tournament >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlite Tournament Adapter : ĠJson Adapter < Lite Tournament > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( value . kind ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAbs Tournament . Kind . FULL Ġ-> Ġfull Tournament Adapter . toJson ( writer , Ġvalue Ġas ĠFull Tournament ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAbs Tournament . Kind . L ITE Ġ-> Ġlite Tournament Adapter . toJson ( writer , Ġvalue Ġas ĠLite Tournament ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ