package Ġcom . cogn if ide . gradle . a em . common . instance . service . pkg Ċ Ċ import Ġcom . cogn if ide . gradle . common . utils . Patterns Ċ import Ġjava . io . InputStream Ċ import Ġjava . util . regex . Pattern Ċ Ċ class ĠInstall Response Ġprivate Ġconstructor ( private Ġval Ġraw Html : ĠString ) Ġ: ĠHtml Response ( raw Html ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Error Patterns (): ĠList < Error Pattern > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠERROR _ P ATTER NS ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġstatus : ĠStatus ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw Html . contains ( INSTALL _ SUCCESS ) Ġ-> ĠStatus . SUCCESS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw Html . contains ( INSTALL _ SUCCESS _ WITH _ ERRORS ) Ġ-> ĠStatus . SUCCESS _ WITH _ ERRORS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠStatus . FAIL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Package Errors ( patterns : ĠCollection < String >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnormalized Patterns Ġ= Ġpatterns . map Ġ{ Ġ"* ${ it . trim ('* ')} *" Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġerrors . any Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror . split To Sequence ("\ n "). forEach Ġ{ Ġerror Line Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Patterns . wildcard ( error Line . trim (), Ġnormalized Patterns )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ any Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINSTALL _ SUCCESS Ġ= Ġ"< span Ġclass =\" Package Ġimported .\ ">" ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINSTALL _ SUCCESS _ WITH _ ERRORS Ġ= Ġ"< span Ġclass =\" Package Ġimported Ġ( with Ġerrors " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠERROR _ PATTERN : ĠPattern Ġ= ĠPattern . compile ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"< span Ġclass =\" E \">< b > E </ b >& nbsp ; (. + \\ s ? ?. + )</ span >", ĠPattern . DOT ALL ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠPROCESS ING _ ERROR _ PATTERN : ĠPattern Ġ= ĠPattern . compile ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"< span Ġclass =\" error \ ">( .+ )</ span >< br >< code >< pre >( [ \\ s \\ S ]+ )</ pre >", ĠPattern . DOT ALL ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠERROR _ P ATTER NS Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠError Pattern ( PROCESS ING _ ERROR _ PATTERN , Ġtrue ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠError Pattern ( ERROR _ PATTERN , Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠSTATUS _ TAGS Ġ= ĠlistOf ( INSTALL _ SUCCESS , ĠINSTALL _ SUCCESS _ WITH _ ERRORS ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( input : ĠInputStream , ĠbufferSize : ĠInt ): ĠInstall Response Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠInstall Response ( filter ( input , ĠERROR _ P ATTER NS , ĠSTATUS _ TAGS , ĠbufferSize )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ