package Ġorg . tree Ware . model . action Ċ Ċ import Ġorg . tree Ware . meta Model . get Meta Name Ċ import Ġorg . tree Ware . meta Model . is Composition Field Meta Ċ import Ġorg . tree Ware . meta Model . is Key Field Meta Ċ import Ġorg . tree Ware . meta Model . isSet Field Meta Ċ import Ġorg . tree Ware . model . core . Entity Model Ċ import Ġorg . tree Ware . model . core . Field Model Ċ import Ġorg . tree Ware . model . core . Single Field Model Ċ Ċ data Ġclass ĠGeneric Field < Value >( val Ġname : ĠString , Ġval Ġvalue : ĠValue ) Ċ data Ġclass ĠGeneric Entity < Value >( val Ġname : ĠString , Ġval Ġfields : ĠList < Generic Field < Value >>) Ċ Ċ internal Ġfun Ġ< FieldValue > ĠgetKey Fields ( ĊĠĠĠ Ġentity Name : ĠString , ĊĠĠĠ Ġkey Field : ĠField Model , ĊĠĠĠ Ġvalue Getter : Ġ( key Field : ĠField Model ) Ġ-> ĠField Value Ċ ): ĠList < Generic Field < FieldValue >> Ġ{ ĊĠĠĠ Ġif Ġ( key Field Ġis ĠSingle Field Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġkey Field . value ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġis ĠEntity Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue . fields . values . filter Ġ{ Ġis Key Field Meta ( it . meta ) Ġ}. map Ġ{ Ġnested Key Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Name Ġ= Ġ"\" /$ entityName /${ get Meta Name ( key Field . meta ) }/${ get Meta Name ( nested Key . meta )}\ "" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Value Ġ= Ġvalue Getter ( nested Key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGeneric Field ( key Name , Ġkey Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġkey Name Ġ= Ġ"\" /$ entityName /${ get Meta Name ( key Field . meta )}\ "" ĊĠĠĠ Ġval Ġkey Value Ġ= Ġvalue Getter ( key Field ) ĊĠĠĠ Ġreturn ĠlistOf ( Generic Field ( key Name , Ġkey Value )) Ċ } Ċ Ċ fun Ġis Composition Field ( field : ĠField Model ): ĠBoolean Ġ= ĊĠĠĠ Ġ! isSet Field Meta ( field . meta ) Ġ&& Ġis Composition Field Meta ( field . meta ) Ċ Ċ fun Ġis Composition Set Field ( field : ĠField Model ): ĠBoolean Ġ= ĊĠĠĠ ĠisSet Field Meta ( field . meta ) Ġ&& Ġis Composition Field Meta ( field . meta ) Ċ