/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 5 ĠGoogle , ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . google . devtools . moe . client . github Ċ Ċ import Ġjava . net . Malformed URLException Ċ import Ġjava . net . URL Ċ Ċ /** Ċ Ġ* ĠA Ġrepresentation Ġof Ġa Ġpull Ġrequest ĠURL , Ġthat Ġprovides Ġvalidation Ġand Ġconversion Ġto Ġthe Ċ Ġ* ĠGithub Ġrest ful ĠAPI Ġequivalent ĠURL . Ċ Ġ*/ Ċ data Ġclass ĠPull Request Url Ġinternal Ġconstructor ( ĊĠ Ġval Ġowner : ĠString , ĊĠ Ġval Ġproject : ĠString , ĊĠ Ġval Ġnumber : ĠInt Ċ ) Ġ{ ĊĊĠ Ġval Ġapi Address : ĠString Ġget () Ġ= Ġ" https :// api . github . com / repos /$ owner /$ project / pulls /$ number " ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġfrom Ġa ĠURL Ġstring , Ġthrowing Ġan Ġ[ Invalid Github Url ] Ġexception Ġif Ġthe Ġsupplied ĊĠĠĠĠ Ġ* ĠURL Ġis Ġinvalid Ġor Ġcannot Ġbe Ġparsed Ġas Ġa ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static Ġfun Ġcreate ( url : ĠString ): ĠPull Request Url Ġ{ ĊĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate ( URL ( url )) ĊĠĠĠĠĠ Ġ} Ġcatch Ġ( unused : ĠMal formed URLException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠInvalid Github Url (" Pull Ġrequest Ġurl Ġsupplied Ġis Ġnot Ġa Ġvalid Ġurl : Ġ$ url ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġfrom Ġa ĠURL Ġstring , Ġthrowing Ġan Ġ[ Invalid Github Url ] Ġexception Ġif Ġthe Ġsupplied ĊĠĠĠĠ Ġ* ĠURL Ġis Ġinvalid . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcreate ( url : ĠURL ): ĠPull Request Url Ġ{ ĊĠĠĠĠĠ Ġif Ġ( url . host Ġ!= Ġ" github . com ") Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠInvalid Github Url (" Pull Ġrequest Ġurl Ġis Ġnot Ġa Ġgithub . com Ġurl : Ġ'% s '", Ġurl ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġval Ġ( owner , Ġproject , Ġ_, Ġnumber ) Ġ= Ġurl . path . substring ( 1 ). split ("/ "). also Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it . size Ġ!= Ġ 4 Ġ|| Ġit [ 2 ] Ġ!= Ġ" pull ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġthrow ĠInvalid Github Url (" Invalid Ġpull Ġrequest ĠURL : Ġ'% s '", Ġurl ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠPull Request Url ( owner , Ġproject , Ġnumber . toInt ()) ĊĠĠĠĠĠ Ġ} Ġcatch Ġ( n fe : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠInvalid Github Url (" Invalid Ġpull Ġrequest Ġnumber Ġ'$ number ': Ġ'$ url '") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ