package Ġfunc ify . feature . datasource . graphql . factory Ċ Ċ import Ġfunc ify . feature . datasource . graphql . GraphQL Api DataSource Ċ import Ġfunc ify . feature . datasource . graphql . GraphQL ApiService Ċ import Ġfunc ify . feature . datasource . graphql . metadata . GraphQL Fetcher Metadata Provider Ċ import Ġfunc ify . feature . datasource . graphql . reader . GraphQL Api Source Metadata Reader Ċ import Ġfunc ify . feature . datasource . graphql . schema . GraphQL Source Index Ċ import Ġfunc ify . feature . schema . datasource . Source Met amodel Ċ import Ġgraphql . schema . GraphQL Schema Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ Ċ internal Ġclass ĠDefault GraphQL Api DataSource Factory ( ĊĠĠĠ Ġprivate Ġval Ġgraph QL Fetcher Metadata Provider : ĠGraphQL Fetcher Metadata Provider , ĊĠĠĠ Ġprivate Ġval Ġgraph QL Metadata Reader : ĠGraphQL Api Source Metadata Reader Ċ ) Ġ: ĠGraphQL Api DataSource Factory Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger : ĠLogger Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLoggerFactory . getLogger ( Default GraphQL ApiService Factory :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġinternal Ġdata Ġclass ĠDefault GraphQL Api DataSource ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġgraph QL ApiService : ĠGraphQL ApiService , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġgraph QL Source Schema : ĠGraphQL Schema , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġsource Met amodel : ĠSource Met amodel < GraphQL Source Index > ĊĠĠĠĠĠĠĠ Ġ) Ġ: ĠGraphQL Api DataSource Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate GraphQL Api DataSource ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġgraph QL ApiService : ĠGraphQL ApiService ĊĠĠĠ Ġ): ĠGraphQL Api DataSource Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" create _ graphql _ api _ data _ source : Ġ[ Ġname : Ġ$ name Ġ] ") ĊĠĠĠĠĠĠĠ Ġreturn Ġgraph QL Fetcher Metadata Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. provide Metadata ( graph QL ApiService ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġgql Schema : ĠGraphQL Schema Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDefault GraphQL Api DataSource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgraph QL ApiService Ġ= Ġgraph QL ApiService , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgraph QL Source Schema Ġ= Ġgql Schema , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Met amodel Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgraph QL Metadata Reader . read Source Met amodel From Metadata ( g ql Schema ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. block For First () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Throw () ĊĠĠĠ Ġ} Ċ } Ċ