package Ġde . gle ex . plt cmd . util . knowledge Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa Ġ[ Known ] Ġbit Ġthat Ġis Ġeither Ġfully Ġ[ re ve aled ] Ġor Ġnot . Ċ Ġ* Ċ Ġ* Ġ@ param Ġorigin Ġthe Ġknowledge Ġbit Ġthat Ġmay Ġbe Ġknown Ċ Ġ* Ġ@ param Ġ[ is Re ve aled ] Ġsets Ġthe Ġinitial Ġstate . Ċ Ġ*/ Ċ abstract Ġclass ĠRe veal able < T Ġ: ĠAny , ĠS ELF Ġ: ĠRe veal able < T , ĠS ELF >>( ĊĠĠĠ Ġoverride Ġval Ġorigin : ĠT , ĊĠĠĠ Ġprivate Ġvar Ġis Re ve aled : ĠBoolean Ċ ) Ġ: ĠKnown < T , ĠS ELF > Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWhen Ġtrue , Ġ[ origin ] Ġis Ġthe Ġsource Ġof Ġinformation . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġreve aled : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġis Re ve aled ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġactual Ġ" knowledge Ġbit " Ġwrapped Ġin Ġthis Ġ[ Re veal able ]. ĠWhen Ġreve aled , Ġit Ġwill Ġbe Ġ[ origin ], Ġnull Ġotherwise . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġbit : ĠT ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( re ve aled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorigin ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMark s Ġthis Ġ[ Re veal able ] Ġas Ġ[ re ve aled ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġreveal () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Re ve aled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMer ging Ġa Ġreve aled Ġ[ Re veal able ] Ġinto Ġanother Ġone Ġwith Ġthe Ġsame Ġ[ origin ] Ġ[ reveal ] s Ġit . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthis ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġin fix Ġfun Ġmerge With ( other : ĠS ELF ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other . re ve aled Ġ&& Ġorigin Ġ== Ġother . origin ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreveal () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠRe veal able < *, Ġ* >) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( origin Ġ!= Ġother . origin ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( is Re ve aled Ġ!= Ġother . is Re ve aled ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġorigin . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġis Re ve aled . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ Ċ } Ċ