Merge pull request #3211 from graphql-java/deprecate_fields_container… · graphql-java/graphql-java@053b824 · GitHub
Skip to content

Commit 053b824

Browse files
authored
Merge pull request #3211 from graphql-java/deprecate_fields_container_in_code_registry
Deprecate FieldsContainer on code registry
2 parents 657c6a8 + 5e84296 commit 053b824

4 files changed

Lines changed: 78 additions & 6 deletions

File tree

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

Lines changed: 57 additions & 0 deletions

src/main/java/graphql/schema/idl/SchemaDirectiveWiringEnvironmentImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public GraphQLFieldDefinition getFieldDefinition() {
130130
public DataFetcher<?> getFieldDataFetcher() {
131131
assertNotNull(fieldDefinition, () -> "An output field must be in context to call this method");
132132
assertNotNull(fieldsContainer, () -> "An output field container must be in context to call this method");
133-
return codeRegistry.getDataFetcher(fieldsContainer, fieldDefinition);
133+
return codeRegistry.getDataFetcher(FieldCoordinates.coordinates(fieldsContainer, fieldDefinition), fieldDefinition);
134134
}
135135

136136
@Override

src/test/groovy/graphql/analysis/values/ValueTraverserTest.groovy

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import graphql.schema.GraphQLInputObjectType
1717
import graphql.schema.GraphQLInputSchemaElement
1818
import graphql.schema.GraphQLList
1919
import graphql.schema.GraphQLNamedSchemaElement
20+
import graphql.schema.GraphQLObjectType
2021
import graphql.schema.GraphQLScalarType
2122
import graphql.schema.idl.SchemaDirectiveWiring
2223
import graphql.schema.idl.SchemaDirectiveWiringEnvironment
@@ -861,8 +862,12 @@ type Profile {
861862
GraphQLFieldDefinition onField(SchemaDirectiveWiringEnvironment<GraphQLFieldDefinition> env) {
862863
GraphQLFieldsContainer fieldsContainer = env.getFieldsContainer()
863864
GraphQLFieldDefinition fieldDefinition = env.getFieldDefinition()
865+
if (! fieldsContainer instanceof GraphQLObjectType) {
866+
return fieldDefinition
867+
}
868+
GraphQLObjectType containingObjectType = env.getFieldsContainer() as GraphQLObjectType
864869

865-
final DataFetcher<?> originalDF = env.getCodeRegistry().getDataFetcher(fieldsContainer, fieldDefinition)
870+
final DataFetcher<?> originalDF = env.getCodeRegistry().getDataFetcher(containingObjectType, fieldDefinition)
866871
final DataFetcher<?> newDF = { DataFetchingEnvironment originalEnv ->
867872
ValueVisitor visitor = new ValueVisitor() {
868873
@Override
@@ -884,7 +889,7 @@ type Profile {
884889
return originalDF.get(newEnv);
885890
}
886891

887-
env.getCodeRegistry().dataFetcher(fieldsContainer, fieldDefinition, newDF)
892+
env.getCodeRegistry().dataFetcher(containingObjectType, fieldDefinition, newDF)
888893

889894
return fieldDefinition
890895
}

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

Lines changed: 13 additions & 3 deletions

0 commit comments

Comments
 (0)