package Ġcom . github . cr azy to ss er 4 6 . ch ame leon . util Ċ Ċ import Ġcom . github . cr azy to ss er 4 6 . ch ame leon . entity . Request Document Ċ import Ġcom . github . cr azy to ss er 4 6 . ch ame leon . model . Matcher Operation Ċ import Ġorg . springframework . stereotype . Component Ċ Ċ @ Component Ċ class ĠMatcher Operation Comparator : ĠComparator < Request Document > Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Operation . EQUAL S Ġto Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Operation . IS _ ONE _ OF Ġto Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Operation . NOT _ EQUAL S Ġto Ġ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Operation . ANY Ġto Ġ 4 ĊĠĠĠĠĠĠĠ Ġ). toMap () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcompare ( o 1 : ĠRequest Document , Ġo 2 : ĠRequest Document ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Operation 1 Ġ= Ġo 1 . matcher Operation . let Ġ{ Ġmap [ it ] Ġ} Ġ?: Ġthrow ĠIllegalArgumentException (" Unexpected Ġvalue Ġ${ o 1 . matcher Operation . name }") ĊĠĠĠĠĠĠĠ Ġval Ġvalue Operation 2 Ġ= Ġo 2 . matcher Operation . let Ġ{ Ġmap [ it ] Ġ} Ġ?: Ġthrow ĠIllegalArgumentException (" Unexpected Ġvalue Ġ${ o 2 . matcher Operation . name }") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvalue Operation 1 Ġ- Ġvalue Operation 2 ĊĠĠĠ Ġ} Ċ }