package Ġno . sk at te et aten . aur ora . go bo . graphql . go bo Ċ Ċ import Ġgraphql . schema . Data Fetching Environment Ċ import Ġno . sk at te et aten . aur ora . go bo . graphql . load Value Ċ import Ġjava . time . Instant Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ Ċ data Ġclass ĠGo bo Field User ( val Ġname : ĠString , Ġval Ġuser : ĠString ) Ċ Ċ data Ġclass ĠGo bo Field Usage ( val Ġname : ĠString , Ġval Ġcount : ĠLong , Ġval Ġclients : ĠList < Go bo Client >) Ċ Ċ data Ġclass ĠGo bo Client ( val Ġname : ĠString , Ġval Ġcount : ĠLong ) Ċ Ċ class ĠGo bo Usage Ġ{ ĊĊĠĠĠ Ġfun ĠnumberOf Clients ( dfe : ĠData Fetching Environment ) Ġ= ĊĠĠĠĠĠĠĠ Ġd fe . load Value < Go bo Usage , ĠLong >( key Ġ= Ġthis , Ġloader Class Ġ= ĠGo bo Client Count DataLoader :: class ) ĊĊĠĠĠ Ġfun ĠnumberOf Fields ( dfe : ĠData Fetching Environment ) Ġ= ĊĠĠĠĠĠĠĠ Ġd fe . load Value < Go bo Usage , ĠLong >( key Ġ= Ġthis , Ġloader Class Ġ= ĠGo bo Field Count DataLoader :: class ) ĊĊĠĠĠ Ġfun Ġused Fields ( ĊĠĠĠĠĠĠĠ Ġd fe : ĠData Fetching Environment , ĊĠĠĠĠĠĠĠ Ġname Contains : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġmost Used Only : ĠBoolean ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ= Ġd fe . load Value < Go bo Field Usage Key , ĠList < Go bo Field Usage >>( Go bo Field Usage Key ( name Contains , Ġmost Used Only Ġ== Ġtrue )) ĊĊĠĠĠ Ġfun Ġclients ( dfe : ĠData Fetching Environment , Ġname Contains : ĠString ? Ġ= Ġnull ): ĠCompletableFuture < List < Go bo Client >> Ġ= ĊĠĠĠĠĠĠĠ Ġd fe . load Value ( name Contains Ġ?: Ġ"") Ċ } Ċ Ċ data Ġclass ĠGo bo ( val ĠstartTime : ĠInstant , Ġval Ġusage : ĠGo bo Usage Ġ= ĠGo bo Usage ()) Ċ