package Ġde . fl ori be 2 0 0 0 . war ships _ java . direct . account Ċ Ċ import Ġde . fl ori be 2 0 0 0 . war ships _ java . direct . api . Abstract Request Ċ import Ġde . fl ori be 2 0 0 0 . war ships _ java . direct . api . connect Ċ import Ġde . fl ori be 2 0 0 0 . war ships _ java . direct . api . type Definitions . FieldType Ċ import Ġde . fl ori be 2 0 0 0 . war ships _ java . direct . api . type Definitions . Language Ċ import Ġde . fl ori be 2 0 0 0 . war ships _ java . direct . api . type Definitions . Region Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . util .* Ċ import Ġjava . util . stream . Collectors Ċ Ċ /** Ċ Ġ* ĠA Ġclass Ġto Ġcreate Ġand Ġexecute Ġrequests Ġto Ġretrieve Ġdetails Ġabout Ġplayers ' Ġach ievements . Ċ Ġ* Ċ Ġ* ĠUp Ġto Ġ 1 0 0 Ġplayers Ġcan Ġbe Ġadded Ġto Ġthe Ġrequest , Ġthe Ġresult Ġof Ġthe Ġrequest Ġcan Ġbe Ġretrieved Ġas Ġan Ġinstance Ġof Ġ[ Players Ach ievements ]. Ċ Ġ* Ċ Ġ* Ġ@ author Ġfl ori be 2 0 0 0 Ċ Ġ*/ Ċ @ Suppress (" unused ") Ċ class ĠP layers Ach ievements Request Ġ: ĠAbstract Request < Players Ach ievements Request , ĠP layers Ach ievements >() Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA ĠLogger Ġinstance Ġused Ġto Ġlog Ġevents Ġof Ġthis Ġclass ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġlog : ĠLogger Ġ= ĠLoggerFactory . getLogger ( java Class . simple Name ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġserver Ġregion Ġfor Ġthis Ġrequest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġselected Region : ĠRegion ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġlanguage Ġfor Ġthe Ġapi Ġresponse ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġlanguage : ĠLanguage ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġaccount Ġid Ġof Ġthe Ġplayer ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġaccount Ids : ĠMutable Set < Long > Ġ= ĠHashSet () ĊĊĠĠĠ Ġoverride Ġfun Ġregion ( region : ĠRegion ): ĠP layers Ach ievements Request Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . selected Region Ġ= Ġregion ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlanguage ( language : ĠLanguage ): ĠP layers Ach ievements Request Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . language Ġ= Ġlanguage ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbuild Url (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( this :: selected Region . isInitialized Ġ&& Ġaccount Ids . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġregion Ġmust Ġnot Ġbe Ġnull Ġand Ġthe Ġlist Ġof Ġthe Ġaccount Ġids Ġmust Ġnot Ġbe Ġempty ." ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ"/ wow s / account / ach ievements /" ĊĠĠĠĠĠĠĠ Ġval Ġids Ġ= Ġaccount Ids . stream (). sequential (). map Ġ{ Ġo : ĠLong ? Ġ-> ĠObjects . toString ( o ) Ġ}. collect ( Collectors . join ing ("," )) ĊĠĠĠĠĠĠĠ Ġreturn ĠbaseUrl ( selected Region , Ġpath , Ġlanguage , Ġinstance Name ) Ġ+ ĠFieldType . ACCOUNT _ ID Ġ+ Ġids ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġlist Ġof Ġaccount Ġids . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠWarning : Ġthe Ġexisting Ġids Ġare Ġreplaced ! ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġaccount Ids Ġthe Ġids Ġthat Ġshould Ġbe Ġadded ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġinstance Ġof Ġthis Ġrequest ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException ĠIf Ġthe Ġsize Ġof Ġthe Ġset Ġexceeds Ġthe Ġlimit Ġof Ġ 1 0 0 Ġids ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġaccount Ids ( account Ids : ĠCollection < Long >): ĠP layers Ach ievements Request Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( account Ids . size Ġ<= Ġ 1 0 0 ) Ġ{ Ġ" The Ġsize Ġof Ġthe Ġprovided Ġcollection Ġof Ġids Ġexceeds Ġthe Ġlimit Ġof Ġ 1 0 0 Ġids " Ġ} ĊĠĠĠĠĠĠĠ Ġthis . account Ids Ġ= ĠHashSet ( account Ids ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġan Ġaccount Ġid Ġto Ġthe Ġlist Ġof Ġaccount Ġids . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠExisting Ġids Ġwon 't Ġbe Ġchanged ! ĊĠĠĠĠ Ġ* ĠIf Ġthe Ġlimit Ġis Ġreached , Ġthe Ġid Ġwon 't Ġbe Ġadded Ġto Ġthe Ġrequest Ġand Ġa Ġlogging Ġcall Ġis Ġtriggered . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġid Ġthe Ġid Ġto Ġadd ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġinstance Ġof Ġthis Ġrequest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd AccountId ( id : ĠLong ): ĠP layers Ach ievements Request Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( account Ids . size Ġ< Ġ 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Ids . add ( id ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . warn (" Skipping Ġaccount Ġid Ġaddition . ĠReason : ĠLimit Ġreached Ġ( Limit : Ġ 1 0 0 )") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExec utes Ġa Ġrequest Ġand Ġreturns Ġthe Ġresult Ġof Ġthe Ġrequest . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAll Ġrequests Ġare Ġexecuted Ġsynchronous Ġon Ġthis Ġthread . ĠIt Ġis Ġsafe Ġto Ġexecute Ġthis Ġin Ġa Ġnew Ġthread Ġif Ġit Ġis Ġrequired Ġto Ġbe Ġrun Ġasynchronous . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġan Ġinstance Ġof Ġ[ Players Ach ievements ] Ġthat Ġcontains Ġall Ġrequested Ġplayer Ġdata . ĠIf Ġthe Ġrequest Ġfails , Ġan Ġempty Ġinstance Ġis Ġreturned . ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException ĊĠĠĠĠ Ġ* Ġ Ġ* ĠIf Ġthis Ġmethod Ġis Ġcalled Ġand Ġregion Ġis Ġnull . ĊĠĠĠĠ Ġ* Ġ Ġ* ĠIf Ġthis Ġmethod Ġis Ġcalled Ġand Ġaccount Ids Ġis Ġempty . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġfetch ( url : ĠString ): ĠP layers Ach ievements Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconnect ( url , Ġlimit er ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġapi Builder ( instance Name : ĠString ): ĠP layers Ach ievements Request Ġ{ ĊĠĠĠĠĠĠĠ Ġset Instance ( instance Name ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ }