package Ġorg . carbon . objects . validation . evaluation Ċ Ċ import Ġorg . carbon . objects . validation . Describe Ċ import Ġorg . carbon . objects . validation . evaluation . re jection . Mutable Reference Rejection Ċ import Ġorg . carbon . objects . validation . evaluation . re jection . Reference Ċ import Ġorg . carbon . objects . validation . evaluation . re jection . Rejection Ċ Ċ sealed Ġclass ĠEvaluation Ġ: ĠDescribe Ġ{ ĊĠĠĠ Ġobject ĠAccept ed Ġ: ĠEvaluation () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdescribe ( i : ĠInt ): ĠString Ġ= Ġ" Accepted " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠReject ed ( private Ġval Ġreference : ĠMutable Reference Rejection ) Ġ: ĠEvaluation (), ĠRe jection < Reference > Ġby Ġreference Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ------------------------------------------------ ----- ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComputing ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ------- ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġ_ cache Flatten Key Rejection s : ĠMap < String , ĠRe jection <* >> ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġkey ed Map : ĠMap < String , ĠRe jection <* >> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ cache Flatten Key Rejection s Ġ= Ġ_ cache Flatten Key Rejection s Ġ?: Ġproject Rejection s () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ_ cache Flatten Key Rejection s !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġproject Rejection s (): ĠMap < String , ĠRe jection <* >> Ġ= Ġreference ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatten () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap ( Rejection <* >:: flatten ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. groupBy Ġ{ Ġit . key . qualified Name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġe Ġ-> Ġe . key Ġto Ġe . value . reduce ( Rejection <* >:: merge ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toMap () ĊĊĠĠĠĠĠĠĠ Ġ// Ġ------------------------------------------------ ----- ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIterate ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ------- ĊĠĠĠĠĠĠĠ Ġval Ġkeys Ġget () Ġ= Ġkey ed Map . keys ĊĠĠĠĠĠĠĠ Ġval Ġentries Ġget () Ġ= Ġkey ed Map . entries ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġget ( key Name : ĠString ): ĠRe jection < *> ? Ġ= Ġkey ed Map [ key Name ] ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ< T Ġ: ĠAny > Ġfrom ( re jection : ĠRe jection < T >): ĠReject ed Ġ= ĠReject ed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMutable Reference Rejection (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( re jection ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ