/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . Ġand Ġother Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġcom . jetbrains . plugin . structure . base . utils Ċ Ċ import Ġcom . jetbrains . plugin . structure . base . de compress . Tar De compressor Ċ import Ġcom . jetbrains . plugin . structure . base . de compress . Zip Compressor Ċ import Ġcom . jetbrains . plugin . structure . base . de compress . Zip De compressor Ċ import Ġjava . io . File Ċ Ċ fun ĠFile . extract To ( destination : ĠFile , Ġoutput Size Limit : ĠLong ? Ġ= Ġnull ): ĠFile Ġ{ ĊĠ Ġval Ġde compressor Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġname . endsWith (". zip ") Ġ-> ĠZip De compressor ( this , Ġoutput Size Limit ) ĊĠĠĠ Ġname . endsWith (". tar . gz ") Ġ-> ĠTar De compressor ( this , Ġoutput Size Limit ) ĊĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unknown Ġtype Ġarchive Ġtype : Ġ${ destination . name }") ĊĠ Ġ} ĊĊĠ Ġdestination . create Dir () ĊĠ Ġde compressor . extract ( destination ) ĊĠ Ġreturn Ġdestination Ċ } Ċ Ċ fun ĠFile . archive Directory To ( destination : ĠFile ) Ġ{ ĊĠ Ġrequire ( destination . extension Ġ== Ġ" zip " Ġ|| Ġdestination . extension Ġ== Ġ" jar " Ġ|| Ġdestination . extension Ġ== Ġ" n up kg ") ĊĠ Ġdestination . force Delete IfExists () ĊĠ ĠZip Compressor ( destination ). use Ġ{ Ġzip Ġ-> ĊĠĠĠ Ġzip . add Directory ( this ) ĊĠ Ġ} Ċ }