/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 - 2 0 2 1 ĠAnt on ĠTr ush kov Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġapp . the le ma . ecs Ċ Ċ import Ġapp . the le ma . json . I JsonObject Ċ Ċ interface ĠI Property Descriptor < T : ĠI Entity Component , ĠV : ĠAny ?> Ġ{ ĊĠĠĠ Ġval Ġname : ĠString ĊĊĠĠĠ Ġval Ġtype : ĠI PropertyType ĊĊĠĠĠ Ġval Ġuse Json ReadWrite : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtrue ĊĊĠĠĠ Ġ/** ĠSet Ġproperty Ġ[ value ] Ġto Ġ[ component ] Ġ*/ ĊĠĠĠ Ġfun ĠsetValue ( component : ĠT , Ġvalue : ĠV ) ĊĊĠĠĠ Ġ/** ĠGet Ġproperty Ġvalue Ġfrom Ġ[ component ] Ġ*/ ĊĠĠĠ Ġfun ĠgetValue ( component : ĠT ): ĠV ĊĊĠĠĠ Ġ/** ĠCopy Ġproperty Ġvalue Ġfrom Ġ[ other ] Ġto Ġ[ component ] Ġ*/ ĊĠĠĠ Ġfun Ġcopy ( component : ĠT , Ġother : ĠT ) Ġ= ĠsetValue ( component , ĠgetValue ( other )) ĊĊĠĠĠ Ġ/** ĠGet Ġdefault Ġproperty Ġvalue Ġ*/ ĊĠĠĠ Ġfun Ġdefault (): ĠV ĊĊĠĠĠ Ġ/** ĠRead Ġproperty Ġvalue Ġfrom ĠJSON Ġ*/ ĊĠĠĠ Ġfun Ġread Json ( component : ĠT , Ġjson : ĠI JsonObject ) ĊĊĠĠĠ Ġ/** ĠWrite Ġproperty Ġvalue Ġto ĠJSON Ġ*/ ĊĠĠĠ Ġfun Ġwrite Json ( component : ĠT , Ġjson : ĠI JsonObject ) Ċ }