package Ġorg . kom apper . core . met amodel Ċ Ċ import Ġkotlin . reflect . K Class Ċ Ċ interface ĠProperty Met amodel < E , ĠT Ġ: ĠAny > Ġ{ ĊĠĠĠ Ġval Ġowner : ĠEntity Met amodel < E > ĊĠĠĠ Ġval Ġklass : ĠK Class < T > ĊĠĠĠ Ġval ĠcolumnName : ĠString ĊĠĠĠ Ġval Ġget : Ġ( E ) Ġ-> ĠT ? ĊĠĠĠ Ġval Ġget With Unchecked Cast : Ġ( Any ) Ġ-> ĠT ? ĊĠĠĠ Ġval Ġset : Ġ( Pair < E , ĠT >) Ġ-> ĠE Ċ } Ċ Ċ class ĠProperty Met amodel Impl < E , ĠT Ġ: ĠAny >( ĊĠĠĠ Ġoverride Ġval Ġowner : ĠEntity Met amodel < E >, ĊĠĠĠ Ġprivate Ġval Ġdescriptor : ĠProperty Descriptor < E , ĠT > Ċ ) Ġ: ĠProperty Met amodel < E , ĠT > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġklass : ĠK Class < T > Ġget () Ġ= Ġdescriptor . klass ĊĠĠĠ Ġoverride Ġval ĠcolumnName : ĠString Ġget () Ġ= Ġdescriptor . columnName ĊĠĠĠ Ġoverride Ġval Ġget : Ġ( E ) Ġ-> ĠT ? Ġget () Ġ= Ġdescriptor . get ĊĠĠĠ Ġoverride Ġval Ġget With Unchecked Cast : Ġ( Any ) Ġ-> ĠT ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptor . get ( it Ġas ĠE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġval Ġset : Ġ( Pair < E , ĠT >) Ġ-> ĠE Ġget () Ġ= Ġdescriptor . set Ċ } Ċ Ċ class ĠEmpty Property Met amodel < E , ĠT Ġ: ĠAny > Ġ: ĠProperty Met amodel < E , ĠT > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġowner : ĠEntity Met amodel < E > Ġget () Ġ= Ġerror (" error ") ĊĠĠĠ Ġoverride Ġval Ġklass : ĠK Class < T > Ġget () Ġ= Ġerror (" error ") ĊĠĠĠ Ġoverride Ġval ĠcolumnName : ĠString Ġget () Ġ= Ġerror (" error ") ĊĠĠĠ Ġoverride Ġval Ġget : Ġ( E ) Ġ-> ĠT ? Ġget () Ġ= Ġerror (" error ") ĊĠĠĠ Ġoverride Ġval Ġget With Unchecked Cast : Ġ( Any ) Ġ-> ĠT ? Ġget () Ġ= Ġerror (" error ") ĊĠĠĠ Ġoverride Ġval Ġset : Ġ( Pair < E , ĠT >) Ġ-> ĠE Ġget () Ġ= Ġerror (" error ") Ċ } Ċ