package Ġcom . free let ics . mad . w het stone . codegen . nav entry Ċ Ċ import Ġcom . free let ics . mad . w het stone . Nav Entry Data Ċ import Ġcom . free let ics . mad . w het stone . codegen . util . Generator Ċ import Ġcom . free let ics . mad . w het stone . codegen . util . bind s Ċ import Ġcom . free let ics . mad . w het stone . codegen . util . contribut es To Annotation Ċ import Ġcom . free let ics . mad . w het stone . codegen . util . into Map Ċ import Ġcom . free let ics . mad . w het stone . codegen . util . module Ċ import Ġcom . free let ics . mad . w het stone . codegen . util . nav Entry Component Getter Ċ import Ġcom . free let ics . mad . w het stone . codegen . util . nav Entry Component Getter Key Ċ import Ġcom . free let ics . mad . w het stone . codegen . util . opt In Annotation Ċ import Ġcom . squareup . kotlin po et . Annotation Spec Ċ import Ġcom . squareup . kotlin po et . ClassName Ċ import Ġcom . squareup . kotlin po et . Fun Spec Ċ import Ġcom . squareup . kotlin po et . K Modifier . AB STR ACT Ċ import Ġcom . squareup . kotlin po et . Type Spec Ċ Ċ internal Ġclass ĠNav Entry Component Getter Module Generator ( ĊĠĠĠ Ġoverride Ġval Ġdata : ĠNav Entry Data , Ċ ) Ġ: ĠGenerator < Nav Entry Data >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmodule ClassName Ġ= ĠClass Name (" W het stone ${ data . base Name } Module ") ĊĊĠĠĠ Ġinternal Ġfun Ġgenerate (): ĠType Spec Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠType Spec . interface Builder ( module ClassName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Annotation ( module ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Annotation ( contribut es To Annotation ( data . parent Scope )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addFunction ( retrieve Function ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmap Key Annotation (): ĠAnnotation Spec Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠAnnotation Spec . builder ( nav Entry Component Getter Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Member ("% S ", Ġdata . scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġretrieve Function (): ĠFun Spec Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFun Spec . builder (" bind Component Getter ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Modifiers ( AB STR ACT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Annotation ( bind s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Annotation ( into Map ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Annotation ( map Key Annotation ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Annotation ( opt In Annotation ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Parameter (" getter ", Ġcomponent Getter ClassName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. returns ( nav Entry Component Getter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ } Ċ