Skip to content

Commit 34df7d3

Browse files
authored
Retain trivial DataFetcher marker when original DataFetcher was trivial (#88)
Create a TrivialFieldValidatorDataFetcher which implements TrivialDataFetcher instead of a standard FieldValidatorDataFetcher if the original dataFetcher was an instance of TrivialDataFetcher.
1 parent 256530b commit 34df7d3

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package graphql.validation.schemawiring;
2+
3+
import graphql.TrivialDataFetcher;
4+
import graphql.schema.DataFetcher;
5+
import graphql.validation.interpolation.MessageInterpolator;
6+
import graphql.validation.rules.OnValidationErrorStrategy;
7+
import graphql.validation.rules.ValidationRules;
8+
9+
import java.util.Locale;
10+
11+
public class TrivialFieldValidatorDataFetcher extends FieldValidatorDataFetcher implements TrivialDataFetcher<Object> {
12+
public TrivialFieldValidatorDataFetcher(OnValidationErrorStrategy errorStrategy, MessageInterpolator messageInterpolator, DataFetcher<?> defaultDataFetcher, Locale defaultLocale, ValidationRules validationRules) {
13+
super(errorStrategy, messageInterpolator, defaultDataFetcher, defaultLocale, validationRules);
14+
}
15+
}

src/main/java/graphql/validation/schemawiring/ValidationSchemaWiring.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package graphql.validation.schemawiring;
22

33
import graphql.PublicApi;
4+
import graphql.TrivialDataFetcher;
45
import graphql.schema.DataFetcher;
56
import graphql.schema.GraphQLFieldDefinition;
67
import graphql.schema.GraphQLFieldsContainer;
78
import graphql.schema.idl.SchemaDirectiveWiring;
89
import graphql.schema.idl.SchemaDirectiveWiringEnvironment;
910
import graphql.validation.interpolation.MessageInterpolator;
1011
import graphql.validation.rules.OnValidationErrorStrategy;
11-
import graphql.validation.rules.TargetedValidationRules;
1212
import graphql.validation.rules.ValidationRules;
1313

1414
import java.util.Locale;
@@ -51,6 +51,16 @@ private DataFetcher<Object> buildValidatingDataFetcher(OnValidationErrorStrategy
5151
MessageInterpolator messageInterpolator,
5252
DataFetcher<?> currentDF,
5353
final Locale defaultLocale) {
54+
if (currentDF instanceof TrivialDataFetcher) {
55+
return new TrivialFieldValidatorDataFetcher(
56+
errorStrategy,
57+
messageInterpolator,
58+
currentDF,
59+
defaultLocale,
60+
ruleCandidates
61+
);
62+
}
63+
5464
return new FieldValidatorDataFetcher(
5565
errorStrategy,
5666
messageInterpolator,

0 commit comments

Comments
 (0)