Skip to content

Commit b13b7c8

Browse files
committed
Use a singleton PropertyFetcher by default - deprecated DFF method
1 parent 9ca4d30 commit b13b7c8

File tree

6 files changed

+21
-7
lines changed

6 files changed

+21
-7
lines changed

src/main/java/graphql/schema/DataFetcherFactories.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@ public class DataFetcherFactories {
2020
* @return a data fetcher factory that always returns the provided data fetcher
2121
*/
2222
public static <T> DataFetcherFactory<T> useDataFetcher(DataFetcher<T> dataFetcher) {
23-
return new DataFetcherFactory<T>() {
23+
//noinspection deprecation
24+
return new DataFetcherFactory<>() {
2425
@Override
2526
public DataFetcher<T> get(DataFetcherFactoryEnvironment environment) {
2627
return dataFetcher;
2728
}
2829

2930
@Override
30-
public DataFetcher<T> getViaField(GraphQLFieldDefinition fieldDefinition) {
31+
public DataFetcher<T> get(GraphQLFieldDefinition fieldDefinition) {
3132
return dataFetcher;
3233
}
3334
};
@@ -42,7 +43,7 @@ public DataFetcher<T> getViaField(GraphQLFieldDefinition fieldDefinition) {
4243
*
4344
* @return a new data fetcher that wraps the provided data fetcher
4445
*/
45-
public static DataFetcher wrapDataFetcher(DataFetcher delegateDataFetcher, BiFunction<DataFetchingEnvironment, Object, Object> mapFunction) {
46+
public static DataFetcher<?> wrapDataFetcher(DataFetcher<?> delegateDataFetcher, BiFunction<DataFetchingEnvironment, Object, Object> mapFunction) {
4647
return environment -> {
4748
Object value = delegateDataFetcher.get(environment);
4849
if (value instanceof CompletionStage) {

src/main/java/graphql/schema/DataFetcherFactory.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ public interface DataFetcherFactory<T> {
1919
* @param environment the environment that needs the data fetcher
2020
*
2121
* @return a data fetcher
22+
*
23+
* @deprecated This method will go away at some point and {@link DataFetcherFactory#get(GraphQLFieldDefinition)} will be used
2224
*/
25+
@Deprecated(since = "2024-11-26")
2326
DataFetcher<T> get(DataFetcherFactoryEnvironment environment);
2427

2528
/**
@@ -31,7 +34,7 @@ public interface DataFetcherFactory<T> {
3134
* @return a data fetcher
3235
*/
3336

34-
default DataFetcher<T> getViaField(GraphQLFieldDefinition fieldDefinition) {
37+
default DataFetcher<T> get(GraphQLFieldDefinition fieldDefinition) {
3538
return null;
3639
}
3740

src/main/java/graphql/schema/DataFetcherFactoryEnvironment.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@
55
/**
66
* This is passed to a {@link graphql.schema.DataFetcherFactory} when it is invoked to
77
* get a {@link graphql.schema.DataFetcher}
8+
*
9+
* @deprecated This class will go away at some point in the future since its pointless wrapper
10+
* of a {@link GraphQLFieldDefinition}
811
*/
912
@PublicApi
13+
@Deprecated(since = "2024-11-26")
1014
public class DataFetcherFactoryEnvironment {
1115
private final GraphQLFieldDefinition fieldDefinition;
1216

src/main/java/graphql/schema/GraphQLCodeRegistry.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ public boolean hasDataFetcher(FieldCoordinates coordinates) {
8484
return hasDataFetcherImpl(coordinates, dataFetcherMap, systemDataFetcherMap);
8585
}
8686

87+
@SuppressWarnings("deprecation")
8788
private static DataFetcher<?> getDataFetcherImpl(FieldCoordinates coordinates, GraphQLFieldDefinition fieldDefinition, Map<FieldCoordinates, DataFetcherFactory<?>> dataFetcherMap, Map<String, DataFetcherFactory<?>> systemDataFetcherMap, DataFetcherFactory<?> defaultDataFetcherFactory) {
8889
assertNotNull(coordinates);
8990
assertNotNull(fieldDefinition);
@@ -96,7 +97,7 @@ private static DataFetcher<?> getDataFetcherImpl(FieldCoordinates coordinates, G
9697
}
9798
}
9899
// call direct from the field - cheaper to not make a new environment object
99-
DataFetcher<?> dataFetcher = dataFetcherFactory.getViaField(fieldDefinition);
100+
DataFetcher<?> dataFetcher = dataFetcherFactory.get(fieldDefinition);
100101
if (dataFetcher == null) {
101102
DataFetcherFactoryEnvironment factoryEnvironment = newDataFetchingFactoryEnvironment()
102103
.fieldDefinition(fieldDefinition)

src/test/groovy/graphql/schema/DataFetcherFactoriesTest.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class DataFetcherFactoriesTest extends Specification {
3232
def fetcherFactory = DataFetcherFactories.useDataFetcher(pojoDF)
3333

3434
when:
35-
def value = fetcherFactory.get(null).get(null)
35+
def value = fetcherFactory.get((GraphQLFieldDefinition)null).get(null)
3636

3737
then:
3838
value == "goodbye"
@@ -42,7 +42,7 @@ class DataFetcherFactoriesTest extends Specification {
4242
def fetcherFactory = DataFetcherFactories.useDataFetcher(pojoDF)
4343

4444
when:
45-
def value = fetcherFactory.getViaField(null).get(null)
45+
def value = fetcherFactory.get((GraphQLFieldDefinition) null).get(null)
4646

4747
then:
4848
value == "goodbye"

src/test/groovy/graphql/schema/idl/SchemaGeneratorTest.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2282,6 +2282,11 @@ class SchemaGeneratorTest extends Specification {
22822282
DataFetcher get(DataFetcherFactoryEnvironment environment) {
22832283
return df
22842284
}
2285+
2286+
@Override
2287+
DataFetcher get(GraphQLFieldDefinition fieldDefinition) {
2288+
return df
2289+
}
22852290
}
22862291
22872292
GraphQLCodeRegistry codeRegistry = newCodeRegistry()

0 commit comments

Comments
 (0)