package Ġm ary k . core . properties . references Ċ Ċ import Ġm ary k . core . exceptions . Unexpected Value Exception Ċ import Ġm ary k . core . extensions . bytes . calculate Var Byte Length Ċ import Ġm ary k . core . extensions . bytes . write Var Bytes Ċ import Ġm ary k . core . properties . Is Property Context Ċ import Ġm ary k . core . properties . definitions . IsSet Definition Ċ import Ġm ary k . core . properties . definitions . Is Storage Bytes En codable Ċ import Ġm ary k . core . properties . definitions . Is Value Definition Ċ import Ġm ary k . core . protobuf . Write Cache Reader Ċ import Ġm ary k . core . protobuf . Write Cache Writer Ċ Ċ /** Ċ Ġ* ĠReference Ġto Ġa ĠSet ĠItem Ġby Ġ[ value ] Ġof Ġ[ T ] Ġand Ġcontext Ġ[ CX ] Ġon Ġset Ġreferred Ġto Ġ[ parent Reference ] Ġand Ċ Ġ* Ġdefined Ġby Ġ[ set Definition ] Ċ Ġ*/ Ċ class ĠSet Item Reference < T Ġ: ĠAny , ĠCX Ġ: ĠIs Property Context > Ġinternal Ġconstructor ( ĊĠĠĠ Ġval Ġvalue : ĠT , ĊĠĠĠ Ġval Ġset Definition : ĠIs Set Definition < T , ĠCX >, ĊĠĠĠ Ġparent Reference : ĠCan Contain SetItem Reference < *, Ġ*, Ġ* >? Ċ ) Ġ: ĠCan Have Simple Child Reference < T , ĠIs Value Definition < T , ĠCX >, ĠCan Contain SetItem Reference < *, Ġ*, Ġ* >, ĠSet < T >>( ĊĠĠĠĠĠĠĠ Ġset Definition . value Definition , Ġparent Reference ĊĠĠĠ Ġ), ĊĠĠĠ ĠIs Property Reference With Parent < T , ĠIs Value Definition < T , ĠCX >, ĠCan Contain SetItem Reference < *, Ġ*, Ġ* >, ĠSet < T >> Ġ{ ĊĠĠĠ Ġoverride Ġval Ġcomplete Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis . parent Reference ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ it . complete Name }. #$ value " ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġ"# $ value " ĊĊĠĠĠ Ġoverride Ġfun Ġresolve From Any ( value : ĠAny ) Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġis ĠSet < *> Ġ&& Ġvalue . contains ( this . value )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . value ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠUnexpected Value Exception (" Expected ĠList Ġto Ġget Ġvalue Ġby Ġreference ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcalculate Transport Byte Length ( cacher : ĠWrite Cache Writer ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparent Length Ġ= Ġthis . parent Reference ?. calculate Transport Byte Length ( cacher ) Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġvalue Length Ġ= Ġset Definition . value Definition . calculate Transport Byte Length With Key ( 0 u , Ġvalue , Ġc acher ) ĊĠĠĠĠĠĠĠ Ġreturn Ġparent Length Ġ+ Ġvalue Length ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite Transport Bytes ( cache Getter : ĠWrite Cache Reader , Ġwriter : Ġ( byte : ĠByte ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . parent Reference ?. write Transport Bytes ( cache Getter , Ġwriter ) ĊĠĠĠĠĠĠĠ Ġset Definition . value Definition . write Transport Bytes With Key ( 0 u , Ġvalue , Ġcache Getter , Ġwriter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcalculate Self Storage Byte Length (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġval Ġset Item Length Ġ= Ġ( this . set Definition . value Definition Ġas ĠIs Storage Bytes En codable < T >). calculate Storage Byte Length ( this . value ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġlength Ġsize Ġfor Ġset Ġvalue ĊĠĠĠĠĠĠĠ Ġreturn Ġset Item Length . calculate Var Byte Length () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġbytes Ġfor Ġset Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Item Length ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite Self Storage Bytes ( writer : Ġ( byte : ĠByte ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġval Ġvalue Definition Ġ= Ġ( set Definition . value Definition Ġas ĠIs Storage Bytes En codable < T >) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWrite Ġset Ġitem Ġbytes ĊĠĠĠĠĠĠĠ Ġvalue Definition . calculate Storage Byte Length ( value ). write Var Bytes ( writer ) ĊĠĠĠĠĠĠĠ Ġ// ĠWrite Ġvalue Ġbytes ĊĠĠĠĠĠĠĠ Ġvalue Definition . write Storage Bytes ( value , Ġwriter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresolve ( values : ĠSet < T >) Ġ= ĊĠĠĠĠĠĠĠ Ġvalues . find Ġ{ Ġthis . value Ġ== Ġit Ġ} Ċ } Ċ