package Ġcom . j ep pe man . glob ally dynamic . gradle . generators Ċ Ċ import Ġcom . squareup . jav ap o et . Field Spec Ċ import Ġcom . squareup . jav ap o et . Java File Ċ import Ġcom . squareup . jav ap o et . Method Spec Ċ import Ġcom . squareup . jav ap o et . Type Spec Ċ import Ġjava . io . File Ċ import Ġjavax . lang . model . element . Modifier Ċ Ċ internal Ġabstract Ġclass ĠGenerator ( private Ġval ĠoutputFile : ĠFile ) Ġ{ ĊĠĠĠ Ġabstract Ġval Ġtype Spec : ĠType Spec ĊĊĠĠĠ Ġprotected Ġfun ĠField Spec . as Getter ( name : ĠString Ġ= Ġthis . name ): ĠMethod Spec Ġ= ĊĠĠĠĠĠĠĠ ĠMethod Spec . method Builder (" get ${ name . capitalize () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Modifiers ( Modifier . PUBLIC ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Statement (" return Ġ\$ L ", Ġthis . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. returns ( type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġfun Ġgenerate () Ġ{ ĊĠĠĠĠĠĠĠ ĠJava File . builder ( Type Names . PACKAGE _ NAME , Ġtype Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add File Comment (" Generated Ġby ĠG lob ally Dynamic , Ġdo Ġnot Ġmodify ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. writeTo ( outputFile ) ĊĠĠĠ Ġ} Ċ }