// ĠCopyright Ġ 2 0 1 3 ĠM ic hel ĠK ra em er Ċ // Ċ // Ġ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 Ġde . under couch . gradle . tasks . download Ċ Ċ import Ġgro ovy . lang . Closure Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . util . Configurable Ċ import Ġorg . gradle . util . Configure Util Ċ import Ġjava . io . IOException Ċ Ċ /** Ċ Ġ* ĠAn Ġextension Ġthat Ġconfig ures Ġand Ġexecutes Ġa Ġ[ Download Action ] Ċ Ġ* Ġ@ author ĠM ic hel ĠK ra em er Ċ Ġ*/ Ċ class ĠDownload Extension Ċ /** Ċ Ġ* ĠCreates Ġa Ġnew Ġextension Ċ Ġ* Ġ@ param Ġproject Ġthe Ġproject Ġto Ġbe Ġbuilt Ċ Ġ*/ ĊĠĠĠ Ġ( private Ġval Ġproject : ĠProject ) Ġ: ĠConfigur able < Download Extension > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġconfigure ( cl : ĠClosure < *> ?): ĠDownload Extension Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġda Ġ= ĠConfigure Util . configure ( cl , ĠDownload Action ( project )) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġda . execute () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmessage Ġ= Ġe . message ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( message Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Could Ġnot Ġdownload Ġfile " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException ( message , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ }