package Ġcom . m ct ech . architecture . generator . templates . data . api Ċ Ċ import Ġcom . m ct ech . architecture . generator . builder . foreach UseCase Ċ import Ġcom . m ct ech . architecture . generator . builder . print Custom Type Import Ċ import Ġcom . m ct ech . architecture . generator . context . Feature Context Ċ import Ġcom . m ct ech . architecture . generator . context . entity Package Ċ import Ġcom . m ct ech . architecture . generator . generator . blank Line Ċ import Ġcom . m ct ech . architecture . generator . generator . print Import Ċ import Ġcom . m ct ech . architecture . generator . generator . print Tab ulate Ċ import Ġcom . m ct ech . architecture . generator . path . Module FilePath Ċ import Ġcom . m ct ech . architecture . generator . settings . feature Entity Name Ċ import Ġcom . m ct ech . architecture . generator . templates . Kotlin Template Ċ import Ġjava . io . PrintWriter Ċ Ċ /** Ċ Ġ* Ġ@ author ĠMAY CON ĠCAR DO SO Ġon Ġ 2 0 1 9 - 1 1 - 2 8 . Ċ Ġ*/ Ċ open Ġclass ĠRet rofit AP IT emplate ( module Path : ĠModule FilePath ) Ġ: ĠKotlin Template ( module Path ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġfolder : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" api " ĊĊĠĠĠ Ġoverride Ġval ĠclassName : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"${ feature Entity Name ()} API " ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Imports ( output : ĠPrintWriter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠPrint Ġcustom Ġtypes ĊĠĠĠĠĠĠĠ Ġprint Custom Type Import ( output ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThere Ġis Ġa Ġgenerated Ġentity Ġas Ġa Ġtype Ġreturn Ġor Ġa Ġparameter . ĊĠĠĠĠĠĠĠ Ġif Ġ( has Generated Entity ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . print Import ("${ entity Package ()}. ${ feature Entity Name () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . blank Line () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate ClassName ( output : ĠPrintWriter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoutput . println (" interface Ġ$ className { ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Class Body ( output : ĠPrintWriter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġforeach UseCase Ġ{ Ġuse Case Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput . print Tab ulate (" fun Ġ${ use Case . get MethodName ()} ${ use Case . create Parameters Signature ()} ${ use Case . create ReturnType For Services () }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhas Generated Entity (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFeature Context . feature Generator . listOf Use Cases . any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . has Generated Entity () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }