package Ġcom . by but ter . sis y ph us . protobuf Ċ Ċ import Ġcom . by but ter . sis y ph us . collection . content Equals Ċ import Ġcom . by but ter . sis y ph us . protobuf . coded . Writer Ċ import Ġcom . by but ter . sis y ph us . reflect . unchecked Cast Ċ Ċ interface ĠMessage Extension < T > Ġ{ ĊĠĠĠ Ġfun Ġsupport (): ĠExtension Support < T > ĊĊĠĠĠ Ġfun Ġnumber (): ĠInt ĊĊĠĠĠ Ġfun Ġname (): ĠString ĊĊĠĠĠ Ġfun Ġjson Name (): ĠString ĊĊĠĠĠ Ġfun ĠwriteTo ( writer : ĠWriter ) ĊĊĠĠĠ Ġval Ġvalue : ĠT Ċ } Ċ Ċ class ĠMessage Extension Impl < T >( override Ġval Ġvalue : ĠT , Ġprivate Ġval Ġsupport : ĠExtension Support < T >) Ġ: ĠMessage Extension < T > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġsupport (): ĠExtension Support < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsupport ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnumber (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsupport (). descriptor . number ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġname (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsupport (). descriptor . name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġjson Name (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsupport (). descriptor . json Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠwriteTo ( writer : ĠWriter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport (). write ( writer , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġsupport (). java Class . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult Ġ* Ġ 3 7 Ġ+ Ġnumber () ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMap < *, Ġ*> Ġ-> Ġvalue . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult Ġ* Ġ 3 1 Ġ+ Ġit . key . hashCode () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult Ġ* Ġ 3 1 Ġ+ Ġit . value . hashCode () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠList < *> Ġ-> Ġvalue . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult Ġ* Ġ 3 1 Ġ+ Ġit . hashCode () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġresult Ġ= Ġresult Ġ* Ġ 3 1 Ġ+ Ġvalue . hashCode () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . hashCode () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠMessage Extension Impl <* >) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( this . support () Ġ!= Ġother . support ()) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( this . value Ġ!= Ġother . value ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMap < *, Ġ*> Ġ-> Ġvalue . content Equals ( other . value . unchecked Cast ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠList < *> Ġ-> Ġvalue . content Equals ( other . value Ġas ĠList <* >) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġvalue Ġ== Ġother . value ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ