package Ġorg . b aby fish . graphql . provider . meta . impl . security Ċ Ċ import Ġorg . b aby fish . graphql . provider . meta . Security Predicate Ċ Ċ internal Ġclass ĠComposite Security Predicate Impl Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġand : ĠBoolean , ĊĠĠĠ Ġprivate Ġval Ġpredicates : ĠCollection < Security Predicate > Ċ ): ĠSecurity Predicate Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcheck ( author ities : ĠCollection < String >? ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( and ) Ġand ( author ities ) Ġelse Ġor ( author ities ) ĊĊĠĠĠ Ġprivate Ġfun Ġand ( roles : ĠCollection < String >? ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( predicate Ġin Ġpredicates ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! predicate . check ( roles )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġor ( roles : ĠCollection < String >? ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( predicate Ġin Ġpredicates ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( predicate . check ( roles )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġof ( and : ĠBoolean , Ġpredicates : ĠCollection < Security Predicate >): ĠSecurity Predicate ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( predicates . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġpredicates . first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠComposite Security Predicate Impl ( and , Ġpredicates ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }