/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 , ĠM erc en ary ĠCre ators ĠCompany . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġ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 Ġco . merc en ary . cre ators . kotlin . min io Ċ Ċ import Ġco . merc en ary . cre ators . kotlin . util . io .* Ċ import Ġcom . fasterxml . jackson . annotation .* Ċ import Ġjava . util .* Ċ Ċ @ JsonInclude ( JsonInclude . Include . NON _ NULL ) Ċ class ĠItem Data ( val Ġname : ĠString , Ġval Ġbucket : ĠString , Ġval Ġet ag : ĠString ?, Ġval Ġstorage Class : ĠString ?, Ġval Ġfile : ĠBoolean , Ġval Ġcontent Size : ĠLong ?, Ġval Ġlast Modified : ĠDate ?, Ġ@ JsonIgnore Ġval Ġoperations : ĠMin io Operations ) Ġ: ĠMin io Data Aware < Item Data >, ĠInputStream Supplier Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġself : ĠByteArray Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġto ByteArray () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstatus Of () Ġ= Ġif Ġ( file ) Ġoperations . status Of ( name , Ġbucket ) Ġelse ĠStatus Data ( name , Ġbucket ) ĊĊĠĠĠ Ġfun ĠmetaData Of () Ġ= Ġif Ġ( file ) Ġoperations . metaData Of ( name , Ġbucket ) Ġelse ĠMeta Data () ĊĊĠĠĠ Ġ@ JsonIgnore ĊĠĠĠ Ġoverride Ġfun Ġget InputStream () Ġ= Ġif Ġ( file ) Ġoperations . stream Of ( name , Ġbucket ) Ġelse ĠEmpty InputStream ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= ĠtoJSON String () ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode () Ġ= Ġself . content HashCode () ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?) Ġ= Ġwhen Ġ( other ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠItem Data Ġ-> Ġthis Ġ=== Ġother Ġ|| Ġself Ġcontent Equals Ġother . self ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclone () Ġ= Ġcopy Of () ĊĊĠĠĠ Ġoverride Ġfun Ġcopy Of () Ġ= ĠItem Data ( name , Ġbucket , Ġet ag , Ġstorage Class , Ġfile , Ġcontent Size , Ġlast Modified , Ġoperations ) Ċ }