/* Ċ Ġ* ĠĠĠĠĠ ĠK ores Ġ- ĠJava Ġsource Ġand ĠByte code Ġgeneration Ġframework Ġ< https :// github . com / Jon athan xD / K ores > Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠ ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ ĠCopyright Ġ( c ) Ġ 2 0 2 2 ĠThe Real Bug gy / Jon athan xD Ġ( https :// github . com / Jon athan xD /) Ġ< jon athan . script er @ program mer . net > Ċ Ġ* ĠĠĠĠĠ ĠCopyright Ġ( c ) Ġcontributors Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* ĠĠĠĠĠ Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* ĠĠĠĠĠ Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* ĠĠĠĠĠ Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* ĠĠĠĠĠ Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* ĠĠĠĠĠ Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* ĠĠĠĠĠ Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠĠĠĠĠ ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠĠĠĠĠ ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠĠĠĠĠ ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠĠĠĠĠ ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠĠĠĠĠ ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ Ġ* ĠĠĠĠĠ ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġcom . k ores framework . k ores . base . comment Ċ Ċ import Ġcom . k ores framework . k ores . Instruction Ċ import Ġcom . k ores framework . k ores . K ores Part Ċ import Ġcom . k ores framework . k ores . data . K ores Data Ċ import Ġcom . k ores framework . k ores . serialization . Type Serializer Ċ import Ġkotlinx . serialization . Serializable Ċ Ċ /** Ċ Ġ* ĠHold Ġa Ġlist Ġof Ġcomments . Ċ Ġ* Ċ Ġ* Ġ@ property Ġcomments ĠComment Ġlist Ċ Ġ* Ġ@ property Ġtype ĠType Ġof Ġcomments Ġentry . Ċ Ġ*/ Ċ @ Serializable Ċ data Ġclass ĠComments ( ĊĠĠĠ Ġval Ġcomments : ĠList < Comment >, ĊĠĠĠ Ġval Ġtype : ĠType Ċ ) Ġ: ĠK ores Part , ĠInstruction Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġdata : ĠK ores Data Ġ= ĠK ores Data () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġtrue Ġif Ġthis Ġ[ Comments ] Ġinstance Ġis Ġ[ Absent ]. ĠAbs ent Ġcomment Ġis Ġnot Ġthe Ġsame Ġas ĊĠĠĠĠ Ġ* Ġempty Ġcomment . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Absent () Ġ= Ġthis Ġ=== ĠAbs ent ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġtrue Ġif Ġthis Ġ[ Comments ] Ġinstance Ġis Ġnot Ġ[ Absent ]. ĠAbs ent Ġcomment Ġis Ġnot Ġthe Ġsame Ġas ĊĠĠĠĠ Ġ* Ġempty Ġcomment . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Not Absent () Ġ= Ġthis Ġ!== ĠAbs ent ĊĊĠĠĠ Ġoverride Ġfun Ġbuilder (): ĠBuilder Ġ= ĠBuilder ( this ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComment Ġtype ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġenum Ġclass ĠType Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġsimple Ġcomment . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠCOMMENT , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDocumentation Ġcomment . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠDOCUMENT ATION ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠBuilder () Ġ: Ġcom . k ores framework . k ores . builder . Builder < Comments , ĠBuilder >, ĠK ores Part . Part Builder < Comments , ĠBuilder > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġdata : ĠK ores Data Ġ= ĠK ores Data () ĊĠĠĠĠĠĠĠ Ġvar Ġcomments : ĠList < Comment > Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġtype : ĠType ĊĊĠĠĠĠĠĠĠ Ġconstructor ( defaults : ĠComments ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . comments Ġ= Ġdefaults . comments ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . type Ġ= Ġdefaults . type ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . from ( defaults ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSee Ġ[ Comments . comments ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġcomments ( value : ĠList < Comment >): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . comments Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSee Ġ[ Comments . comments ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġcomments ( var arg Ġvalues : ĠComment ): ĠBuilder Ġ= Ġthis . comments ( values . toList ()) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSee Ġ[ Comments . type ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġtype ( value : ĠType ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . type Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild Basic (): ĠComments Ġ= ĠComments ( this . comments , Ġthis . type ) ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġbuilder (): ĠBuilder Ġ= ĠBuilder () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġbuilder ( defaults : ĠComments ): ĠBuilder Ġ= ĠBuilder ( defaults ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAbs ent Ġcomments . ĠAbs ent Ġcomment Ġshould Ġnot Ġbe Ġgenerated . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠAbs ent Ġ= ĠComments ( emptyList (), ĠType . COMMENT ) ĊĠĠĠ Ġ} Ċ } Ċ