/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 2 - 2 0 1 7 ĠThe ĠAN TLR ĠProject . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠUse Ġof Ġthis Ġfile Ġis Ġgoverned Ġby Ġthe ĠBSD Ġ 3 - clause Ġlicense Ġthat Ċ Ġ* Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE . txt Ġfile Ġin Ġthe Ġproject Ġroot . Ċ Ġ*/ Ċ package Ġorg . antlr . v 4 . kotlin runtime . misc Ċ Ċ /** Ċ Ġ* ĠThis Ġdefault Ġimplementation Ġof Ġ[ Equality Comparator ] Ġuses Ġobject Ġequality Ċ Ġ* Ġfor Ġcomparisons Ġby Ġcalling Ġ[ Object . hashCode ] Ġand Ġ[ Object . equals ]. Ċ Ġ* Ċ Ġ* Ġ@ author ĠSam ĠHar well Ċ Ġ*/ Ċ class ĠObject Equality Comparator < in ĠT > Ġ: ĠAbstract Equality Comparator < T >() Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠhashCode ( obj : ĠT ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobj ?. hashCode () Ġ?: Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ{@ inheritDoc } ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġimplementation Ġrelies Ġon Ġobject Ġequality . ĠIf Ġboth Ġobjects Ġare ĊĠĠĠĠ Ġ* Ġ` null `, Ġthis Ġmethod Ġreturns Ġ` true `. ĠOtherwise Ġif Ġonly ĊĠĠĠĠ Ġ* Ġ` a ` Ġis Ġ` null `, Ġthis Ġmethod Ġreturns Ġ` false `. ĠOtherwise , ĊĠĠĠĠ Ġ* Ġthis Ġmethod Ġreturns Ġthe Ġresult Ġof ĊĠĠĠĠ Ġ* Ġ` a .` [ equals ][ Object . equals ]` ( b )`. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġequals ( a : ĠT ?, Ġb : ĠT ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( a Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb Ġ== Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġa Ġ== Ġb ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠINSTANCE Ġ= ĠObject Equality Comparator < Any ?> () ĊĠĠĠ Ġ} Ċ Ċ } Ċ