package Ġedu . by u . u api . model . dialect Ċ Ċ import Ġedu . by u . u api . model . U API Model Ċ import Ġedu . by u . u api . model . serialization . U API Reader Ċ import Ġedu . by u . u api . model . serialization . U API Serialization Format Ċ import Ġedu . by u . u api . model . serialization . U API Writer Ċ import Ġjava . io . Writer Ċ import Ġjava . util .* Ċ Ċ interface ĠU AP ID ialect < Output Ġ: ĠAny > Ġ{ ĊĠĠĠ Ġval Ġname : ĠString ĊĊĠĠĠ Ġval Ġwriter : ĠU API Writer < Output > ĊĠĠĠ Ġval Ġreader : ĠU API Reader < Output > ĊĊĠĠĠ Ġfun Ġconvert ( model : ĠU API Model ): ĠOutput ĊĊĠĠĠ Ġfun Ġconvert And Write ( ĊĠĠĠĠĠĠĠ Ġmodel : ĠU API Model , ĊĠĠĠĠĠĠĠ Ġwriter : ĠWriter , ĊĠĠĠĠĠĠĠ Ġformat : ĠU API Serialization Format Ġ= ĠU API Serialization Format . JSON , ĊĠĠĠĠĠĠĠ Ġpretty Print : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . writer . write ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Ġ= Ġconvert ( model ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter Ġ= Ġwriter , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ= Ġformat , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpretty Print Ġ= Ġpretty Print ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġloader : ĠService Loader < Loader <* >> Ġby Ġlazy Ġ{ ĠService Loader . load ( Loader :: class . java ) Ġ} ĊĠĠĠĠĠĠĠ Ġfun ĠfindAll Dialect s ( force Reload : ĠBoolean Ġ= Ġfalse ): ĠList < U AP ID ialect <* >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( force Reload ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloader . reload () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġloader . map Ġ{ Ġit . dialect Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠLoader < T : ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialect : ĠU AP ID ialect < T > ĊĠĠĠ Ġ} Ċ } ĊĊ