package Ġnet . nt world . foundation . generator . type Ċ Ċ import Ġcom . squareup . kotlin po et . TypeName Ċ Ċ data Ġclass ĠProperty ( ĊĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠ Ġval Ġorder : ĠInt , ĊĠĠĠ Ġval Ġtype : ĠType Name , ĊĠĠĠ Ġval Ġhas Body : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġval Ġf aked Type : ĠString Ġ= Ġ"" Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġsort Properties ( properties : ĠMap < String , ĠProperty >): ĠMap < String , ĠProperty > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkeys Ġ= Ġproperties . keys . toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorder Ġ= Ġproperties . map Values Ġ{ Ġit . value . order Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsorted Keys Ġ= Ġkeys . sorted With ( Comparator Ġ{ Ġo 1 , Ġo 2 Ġ-> Ġorder [ o 1 ] !!. compareTo ( order [ o 2 ] !! ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmutable Map Of < String , ĠProperty >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( key Ġin Ġsorted Keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ key ] Ġ= Ġproperties [ key ] !!. copy ( order Ġ= Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }