package Ġca . trade j mark . j bind . location Ċ Ċ import Ġkotlinx . serialization . Serializable Ċ Ċ @ Serializable Ċ data Ġclass ĠBind Object Location Ġinternal Ġconstructor ( val Ġpath : ĠBind Path , Ġval Ġobject Name : ĠString ) Ġ{ ĊĠĠĠ Ġfun Ġvalue ( value Name : ĠString ): ĠBind Value Location Ġ= ĠBind Value Location ( this , Ġvalue Name ) ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"$ path .$ objectName " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( whole Path : ĠList < String >): ĠBind Object Location Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( whole Path . isNotEmpty ()) Ġ{ Ġ" Cannot Ġconstruct Ġobject Ġlocation Ġfrom Ġempty Ġpath ." Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBind Path ( whole Path . drop Last ( 1 )). obj ( whole Path . last ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( whole Path : ĠString ): ĠBind Object Location Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBind Object Location ( whole Path . split (". ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }