/* Ċ Ġ* ĠĠĠĠĠ ĠK ores - Source Writer Ġ- ĠTrans lates ĠK ores ĠStructure Ġto ĠJava ĠSource Ġ< https :// github . com / Jon athan xD / K ores - Source Writer > Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠ ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ ĠCopyright Ġ( c ) Ġ 2 0 2 1 Ġ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 . source . process . processors Ċ Ċ import Ġcom . github . jon athan xd . i utils . data . Typed Data Ċ import Ġcom . github . jon athan xd . i utils . kt . require Ċ import Ġcom . k ores framework . k ores . Types Ċ import Ġcom . k ores framework . k ores . base .* Ċ import Ġcom . k ores framework . k ores . base . comment . Comment Holder Ċ import Ġcom . k ores framework . k ores . processor . Processor Ċ import Ġcom . k ores framework . k ores . processor . Processor Manager Ċ import Ġcom . k ores framework . k ores . processor . process As Ċ import Ġcom . k ores framework . k ores . source . process . APPEND ER Ċ import Ġcom . k ores framework . k ores . source . process . DECL AR ATION Ċ import Ġcom . k ores framework . k ores . type .` is ` Ċ Ċ object ĠType Declaration Processor Ġ: ĠProcessor < Type Declaration > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġprocess ( ĊĠĠĠĠĠĠĠ Ġpart : ĠType Declaration , ĊĠĠĠĠĠĠĠ Ġdata : ĠTyped Data , ĊĠĠĠĠĠĠĠ Ġprocessor Manager : ĠProcessor Manager < *> ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp ender Ġ= ĠAPP ENDER . require ( data ) ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" NAME _ SH ADO WING ") ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠTyped Data ( data ) ĊĊĠĠĠĠĠĠĠ ĠDECL AR ATION . set ( data , Ġpart ) ĊĠĠĠĠĠĠĠ ĠAPP ENDER . set ( data , Ġapp ender ) ĊĊĠĠĠĠĠĠĠ Ġapp ender . add Declaration ( part ) ĊĊĠĠĠĠĠĠĠ Ġapp ender . add Declaration ( part ) ĊĊĠĠĠĠĠĠĠ Ġprocessor Manager . process As < Comment Holder >( part , Ġdata ) ĊĠĠĠĠĠĠĠ Ġprocessor Manager . process As < Annot able >( part , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġprocessor Manager . process As < Modifiers Holder >( part , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġapp ender Ġ+= Ġwhen Ġ( part ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInterface Declaration Ġ-> Ġ" interface Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAnnotation Declaration Ġ-> Ġ"@ interface Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠClass Declaration Ġ-> Ġ" class Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEnum Declaration Ġ-> Ġ" enum Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprocessor Manager . process As < Named >( part , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġprocessor Manager . process As < Generic Signature Holder >( part , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġapp ender Ġ+= Ġ" Ġ" ĊĊĠĠĠĠĠĠĠ Ġval ĠpackageName Ġ= Ġpart . packageName ĊĊĠĠĠĠĠĠĠ Ġapp ender . set Package IfNot Defined ( packageName ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġsuper Or It fs Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( part Ġis ĠSuper Class Holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! part . super Class .` is `( Types . OBJECT )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessor Manager . process As < Super Class Holder >( part , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper Or It fs Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( part Ġis ĠImplementation Holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( part . implement ations . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessor Manager . process As < Implementation Holder >( part , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper Or It fs Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( super Or It fs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp ender Ġ+= Ġ" Ġ" ĊĊĠĠĠĠĠĠĠ Ġprocessor Manager . process As < Elements Holder >( part , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġapp ender Ġ+= Ġ"\ n " ĊĊĠĠĠĠĠĠĠ Ġif Ġ( part . outer Type Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp ender Ġ+= Ġ"\ n " ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ