@ file : Suppress (" Same Parameter Value ") Ċ Ċ package Ġcom . ram cost a . compose dest inations . k sp . processors Ċ Ċ import Ġcom . google . devtools . k sp . processing . K SP Logger Ċ import Ġcom . ram cost a . compose dest inations . codegen . model . CodeGen Config Ċ import Ġcom . ram cost a . compose dest inations . codegen . model . CodeGen Mode Ċ Ċ class ĠConfig Parser ( ĊĠĠĠ Ġprivate Ġval Ġlogger : ĠK SP Logger , ĊĠĠĠ Ġprivate Ġval Ġoptions : ĠMap < String , ĠString > Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPREFIX Ġ= Ġ" compose - dest inations " ĊĊĠĠĠĠĠĠĠ Ġ// ĠConfig s ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠGEN _ NAV _ GR AP HS Ġ= Ġ"$ PREFIX . generate Nav Graphs " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠGEN _ PACKAGE _ NAME Ġ= Ġ"$ PREFIX . code Gen PackageName " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMODULE _ NAME Ġ= Ġ"$ PREFIX . moduleName " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMODE Ġ= Ġ"$ PREFIX . mode " ĊĊĠĠĠĠĠĠĠ Ġ// ĠMode Ġoptions ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMODE _ NAV _ GR AP HS Ġ= Ġ" nav graphs " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMODE _ DEST IN ATIONS Ġ= Ġ" dest inations " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMODE _ SINGLE _ MODULE Ġ= Ġ" single module " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparse (): ĠCode Gen Config Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠpackageName Ġ= Ġoptions [ GEN _ PACKAGE _ NAME ]?. trim ()?. remove Suffix (".") ĊĠĠĠĠĠĠĠ Ġval ĠmoduleName Ġ= Ġoptions [ MODULE _ NAME ]?. trim ()?. filter Ġ{ Ġit . is Letter () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmode Ġ= Ġparse Mode ( MODE ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠCode Gen Config ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmoduleName Ġ= ĠmoduleName , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= Ġmode , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠpackageName Ġ= ĠpackageName ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Mode ( key : ĠString ): ĠCode Gen Mode Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoption Ġ= Ġoptions [ key ] ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( option Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( option ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMODE _ DEST IN ATIONS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparse Gen Nav Graphs Object Config ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCode Gen Mode . Dest inations ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMODE _ NAV _ GR AP HS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparse Gen Nav Graphs Object Config ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCode Gen Mode . Nav Graphs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMODE _ SINGLE _ MODULE Ġ-> Ġsingle Module Mode () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠWrong Configuration Setup ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ"$ key Ġhas Ġwrong Ġvalue ! ĠIt Ġhas Ġto Ġbe Ġone Ġof : Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"' $ MODE _ NAV _ GR AP HS ', Ġ'$ MODE _ DEST IN ATIONS ', Ġ'$ MODE _ SINGLE _ MODULE '" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Module Mode () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsingle Module Mode (): ĠCode Gen Mode . Single Module Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCode Gen Mode . Single Module ( parse Gen Nav Graphs Object Config ( true ) Ġ?: Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Gen Nav Graphs Object Config ( is Single Module Mode : ĠBoolean ): ĠBoolean ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġgenerate Nav Graphs Ġ= Ġparse Boolean ( GEN _ NAV _ GR AP HS ) ĊĠĠĠĠĠĠĠ Ġif Ġ( generate Nav Graphs Ġ!= Ġnull Ġ&& Ġ! is Single Module Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn ("$ GEN _ NAV _ GR AP HS Ġwas Ġset Ġbut Ġmode Ġis Ġ${ options [ MODE ]}, Ġso Ġit Ġwill Ġbe Ġignored . Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ GEN _ NAV _ GR AP HS Ġis Ġonly Ġmeant Ġfor Ġthe Ġdefault Ġmode Ġ$ MODE _ SINGLE _ MODULE !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate Nav Graphs Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġgenerate Nav Graphs ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Boolean ( key : ĠString ): ĠBoolean ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġoptions [ key ]?. run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Boolean Strict () ĊĠĠĠĠĠĠĠ Ġ} ?. getOrElse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠWrong Configuration Setup ("$ GEN _ NAV _ GR AP HS Ġmust Ġbe Ġa Ġboolean Ġvalue !", Ġcause Ġ= Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠWrong Configuration Setup ( message : ĠString , Ġcause : ĠThrowable ? Ġ= Ġnull ) Ġ: ĊĠĠĠ ĠRuntimeException ( message , Ġcause )