package Ġcom . github . ich an zh ar . r sql . operations Ċ Ċ import Ġorg . hibernate . query . criteria . internal . path . Root Impl Ċ import Ġorg . hibernate . query . criteria . internal . path . Set Attribute Join Ċ import Ġorg . hibernate . query . criteria . internal . path . Sing ular Attribute Join Ċ import Ġjavax . persistence . criteria . Expression Ċ import Ġjavax . persistence . criteria . Predicate Ċ Ċ class ĠJson Equal Processor ( params : ĠParams ) Ġ: ĠAbstract Processor ( params ) Ġ{ Ċ ĉ override Ġfun Ġprocess (): ĠPredicate Ġ{ Ċĉ ĉ val Ġargs Ġ= Ġ( params . args [ 0 ] Ġas ĠString ). split ("| ") Ċĉ ĉ if Ġ( args . size Ġ!= Ġ 2 ) Ġ{ Ċĉĉ ĉ throw ĠIllegalArgumentException (" = js one q = Ġoperator Ġexpects Ġ 2 Ġparts Ġjson Ġpath Ġand Ġvalue Ġmy . path | my value ") Ċĉ ĉ } Ċĉ ĉ val Ġpath Ġ= Ġargs [ 0 ]. split (". "). map Ġ{ Ġparams . builder . literal ( it ) Ġ}. to Typed Array () Ċĉ ĉ val Ġargument Ġ= Ġargs [ 1 ] Ċĉ ĉ if Ġ( is Root Join ()) Ġ{ Ċĉĉ ĉ return Ġparams . builder . equal ( Ċĉĉĉ ĉ params . builder . function ( Ċĉĉĉĉ ĉ " json _ extract _ path _ text ", Ċĉĉĉĉ ĉ String :: class . java , Ċĉĉĉĉ ĉ ( params . root Ġas ĠRoot Impl ). join < Any , ĠAny >( params . property ), Ċĉĉĉĉ ĉ * path Ċĉĉĉ ĉ ), Ċĉĉĉ ĉ argument Ċĉĉ ĉ ) Ċĉ ĉ } Ġelse Ġif Ġ( is Sing ular Join ()) Ġ{ Ċĉĉ ĉ return Ġparams . builder . equal ( Ċĉĉĉ ĉ params . builder . function ( Ċĉĉĉĉ ĉ " json _ extract _ path _ text ", Ċĉĉĉĉ ĉ String :: class . java , Ċĉĉĉĉ ĉ ( params . root Ġas ĠSing ular Attribute Join < *, Ġ*> ). join < Any , ĠAny >( params . property ), Ċĉĉĉĉ ĉ * path Ċĉĉĉ ĉ ), Ċĉĉĉ ĉ argument Ċĉĉ ĉ ) Ċĉ ĉ } Ġelse Ġif Ġ( isSet Join ()) Ġ{ Ċĉĉ ĉ return Ġparams . builder . equal ( Ċĉĉĉ ĉ ( params . root Ġas ĠSet Attribute Join < *, Ġ*> ). join < Any , ĠAny >( params . property ), Ġparams . argument ) Ċĉ ĉ } Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparams . builder . equal ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams . builder . function ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" json _ extract _ path _ text ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams . root . get < Any >( params . property ), Ċĉĉĉĉ ĉ * path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargument ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċĉ ĉ } Ċ ĉ } Ċ }