1515package graphql .annotations .processor .retrievers .fieldBuilders .field ;
1616
1717import graphql .annotations .annotationTypes .GraphQLDataFetcher ;
18+ import graphql .annotations .annotationTypes .GraphQLTypeExtension ;
1819import graphql .annotations .connection .GraphQLConnection ;
1920import graphql .annotations .dataFetchers .ExtensionDataFetcherWrapper ;
2021import graphql .annotations .dataFetchers .MethodDataFetcher ;
@@ -73,13 +74,13 @@ private DataFetcher handleNullCase(DataFetcher actualDataFetcher) {
7374 if (isaBoolean ()) {
7475 actualDataFetcher = getBooleanDataFetcher (actualDataFetcher );
7576 } else if (checkIfPrefixGetterExists (field .getDeclaringClass (), "get" , field .getName ())) {
76- actualDataFetcher = wrapExtension (new PropertyDataFetcher (field .getName ()));
77+ actualDataFetcher = wrapExtension (new PropertyDataFetcher (field .getName ()), field );
7778 } else {
7879 actualDataFetcher = getDataFetcherWithFluentGetter (actualDataFetcher );
7980 }
8081
8182 if (actualDataFetcher == null ) {
82- actualDataFetcher = wrapExtension (new FieldDataFetcher (field .getName ()));
83+ actualDataFetcher = wrapExtension (new PropertyDataFetcher (field .getName ()), field );
8384 }
8485 return actualDataFetcher ;
8586 }
@@ -103,14 +104,17 @@ private DataFetcher getDataFetcherWithFluentGetter(DataFetcher actualDataFetcher
103104 return actualDataFetcher ;
104105 }
105106
106- private ExtensionDataFetcherWrapper wrapExtension (DataFetcher dataFetcher ) {
107- return new ExtensionDataFetcherWrapper (field .getDeclaringClass (), dataFetcher );
107+ private DataFetcher wrapExtension (DataFetcher dataFetcher , Field field ) {
108+ if (field .getDeclaringClass ().isAnnotationPresent (GraphQLTypeExtension .class )) {
109+ return new ExtensionDataFetcherWrapper (field .getDeclaringClass (), dataFetcher );
110+ }
111+ return dataFetcher ;
108112 }
109113
110114 private DataFetcher getBooleanDataFetcher (DataFetcher actualDataFetcher ) {
111115 if (checkIfPrefixGetterExists (field .getDeclaringClass (), "is" , field .getName ()) ||
112116 checkIfPrefixGetterExists (field .getDeclaringClass (), "get" , field .getName ())) {
113- actualDataFetcher = wrapExtension (new PropertyDataFetcher (field .getName ()));
117+ actualDataFetcher = wrapExtension (new PropertyDataFetcher (field .getName ()), field );
114118 }
115119 return actualDataFetcher ;
116120 }
0 commit comments