Skip to content

Commit 0f26b7a

Browse files
committed
mark internal validation classes as @internal
a bit refactoring
1 parent 986ece3 commit 0f26b7a

File tree

10 files changed

+135
-33
lines changed

10 files changed

+135
-33
lines changed

src/main/java/graphql/validation/AbstractRule.java

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

33

4-
import graphql.language.*;
4+
import graphql.Internal;
5+
import graphql.language.Argument;
6+
import graphql.language.Directive;
7+
import graphql.language.Document;
8+
import graphql.language.Field;
9+
import graphql.language.FragmentDefinition;
10+
import graphql.language.FragmentSpread;
11+
import graphql.language.InlineFragment;
12+
import graphql.language.Node;
13+
import graphql.language.OperationDefinition;
14+
import graphql.language.SelectionSet;
15+
import graphql.language.TypeName;
16+
import graphql.language.VariableDefinition;
17+
import graphql.language.VariableReference;
518

619
import java.util.List;
720

21+
@Internal
822
public class AbstractRule {
923

1024
private final ValidationContext validationContext;

src/main/java/graphql/validation/QueryLanguageVisitor.java renamed to src/main/java/graphql/validation/DocumentVisitor.java

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

33

4+
import graphql.Internal;
45
import graphql.language.Node;
56

67
import java.util.List;
78

8-
public interface QueryLanguageVisitor {
9+
@Internal
10+
public interface DocumentVisitor {
911

1012
void enter(Node node, List<Node> path);
1113

src/main/java/graphql/validation/ErrorFactory.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,4 @@ public ValidationError newError(ValidationErrorType validationErrorType, List<?
1818
return new ValidationError(validationErrorType, locationList, description);
1919
}
2020

21-
public ValidationError newError(ValidationErrorType validationErrorType, String description) {
22-
return new ValidationError(validationErrorType, (List) null, description);
23-
}
2421
}

src/main/java/graphql/validation/LanguageTraversal.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@ public LanguageTraversal(List<Node> basePath) {
2222
}
2323
}
2424

25-
public void traverse(Node root, QueryLanguageVisitor queryLanguageVisitor) {
26-
traverseImpl(root, queryLanguageVisitor, path);
25+
public void traverse(Node root, DocumentVisitor documentVisitor) {
26+
traverseImpl(root, documentVisitor, path);
2727
}
2828

2929

30-
private void traverseImpl(Node root, QueryLanguageVisitor queryLanguageVisitor, List<Node> path) {
31-
queryLanguageVisitor.enter(root, path);
30+
private void traverseImpl(Node root, DocumentVisitor documentVisitor, List<Node> path) {
31+
documentVisitor.enter(root, path);
3232
path.add(root);
3333
for (Node child : root.getChildren()) {
34-
traverseImpl(child, queryLanguageVisitor, path);
34+
traverseImpl(child, documentVisitor, path);
3535
}
3636
path.remove(path.size() - 1);
37-
queryLanguageVisitor.leave(root, path);
37+
documentVisitor.leave(root, path);
3838
}
3939
}

src/main/java/graphql/validation/RulesVisitor.java

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,30 @@
11
package graphql.validation;
22

33

4-
import graphql.language.*;
5-
6-
import java.util.*;
7-
8-
public class RulesVisitor implements QueryLanguageVisitor {
4+
import graphql.Internal;
5+
import graphql.language.Argument;
6+
import graphql.language.Directive;
7+
import graphql.language.Document;
8+
import graphql.language.Field;
9+
import graphql.language.FragmentDefinition;
10+
import graphql.language.FragmentSpread;
11+
import graphql.language.InlineFragment;
12+
import graphql.language.Node;
13+
import graphql.language.OperationDefinition;
14+
import graphql.language.SelectionSet;
15+
import graphql.language.TypeName;
16+
import graphql.language.VariableDefinition;
17+
import graphql.language.VariableReference;
18+
19+
import java.util.ArrayList;
20+
import java.util.IdentityHashMap;
21+
import java.util.LinkedHashSet;
22+
import java.util.List;
23+
import java.util.Map;
24+
import java.util.Set;
25+
26+
@Internal
27+
public class RulesVisitor implements DocumentVisitor {
928

1029
private final List<AbstractRule> rules = new ArrayList<>();
1130
private ValidationContext validationContext;

src/main/java/graphql/validation/TraversalContext.java

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,50 @@
11
package graphql.validation;
22

33

4+
import graphql.Internal;
45
import graphql.ShouldNotHappenException;
56
import graphql.execution.TypeFromAST;
6-
import graphql.language.*;
7-
import graphql.schema.*;
7+
import graphql.language.Argument;
8+
import graphql.language.ArrayValue;
9+
import graphql.language.Directive;
10+
import graphql.language.Field;
11+
import graphql.language.FragmentDefinition;
12+
import graphql.language.InlineFragment;
13+
import graphql.language.Node;
14+
import graphql.language.ObjectField;
15+
import graphql.language.OperationDefinition;
16+
import graphql.language.SelectionSet;
17+
import graphql.language.TypeName;
18+
import graphql.language.VariableDefinition;
19+
import graphql.schema.GraphQLArgument;
20+
import graphql.schema.GraphQLCompositeType;
21+
import graphql.schema.GraphQLDirective;
22+
import graphql.schema.GraphQLFieldDefinition;
23+
import graphql.schema.GraphQLFieldsContainer;
24+
import graphql.schema.GraphQLInputObjectField;
25+
import graphql.schema.GraphQLInputObjectType;
26+
import graphql.schema.GraphQLInputType;
27+
import graphql.schema.GraphQLInterfaceType;
28+
import graphql.schema.GraphQLList;
29+
import graphql.schema.GraphQLNonNull;
30+
import graphql.schema.GraphQLNullableType;
31+
import graphql.schema.GraphQLObjectType;
32+
import graphql.schema.GraphQLOutputType;
33+
import graphql.schema.GraphQLSchema;
34+
import graphql.schema.GraphQLType;
35+
import graphql.schema.GraphQLUnionType;
36+
import graphql.schema.GraphQLUnmodifiedType;
37+
import graphql.schema.SchemaUtil;
838

939
import java.util.ArrayList;
1040
import java.util.List;
1141

12-
import static graphql.introspection.Introspection.*;
42+
import static graphql.introspection.Introspection.SchemaMetaFieldDef;
43+
import static graphql.introspection.Introspection.TypeMetaFieldDef;
44+
import static graphql.introspection.Introspection.TypeNameMetaFieldDef;
1345

14-
public class TraversalContext implements QueryLanguageVisitor {
46+
@Internal
47+
public class TraversalContext implements DocumentVisitor {
1548
GraphQLSchema schema;
1649
List<GraphQLOutputType> outputTypeStack = new ArrayList<>();
1750
List<GraphQLCompositeType> parentTypeStack = new ArrayList<>();

src/main/java/graphql/validation/ValidationContext.java

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

33

4+
import graphql.Internal;
45
import graphql.language.Definition;
56
import graphql.language.Document;
67
import graphql.language.FragmentDefinition;
7-
import graphql.schema.*;
8+
import graphql.schema.GraphQLArgument;
9+
import graphql.schema.GraphQLCompositeType;
10+
import graphql.schema.GraphQLDirective;
11+
import graphql.schema.GraphQLFieldDefinition;
12+
import graphql.schema.GraphQLInputType;
13+
import graphql.schema.GraphQLOutputType;
14+
import graphql.schema.GraphQLSchema;
815

916
import java.util.LinkedHashMap;
1017
import java.util.Map;
1118

19+
@Internal
1220
public class ValidationContext {
1321

1422
private final GraphQLSchema schema;

src/main/java/graphql/validation/ValidationErrorCollector.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package graphql.validation;
22

33

4+
import graphql.Internal;
5+
46
import java.util.ArrayList;
57
import java.util.List;
68

9+
@Internal
710
public class ValidationErrorCollector {
811

912
private final List<ValidationError> errors = new ArrayList<>();

src/main/java/graphql/validation/Validator.java

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,33 @@
11
package graphql.validation;
22

33

4+
import graphql.Internal;
45
import graphql.language.Document;
56
import graphql.schema.GraphQLSchema;
6-
import graphql.validation.rules.*;
7+
import graphql.validation.rules.ArgumentsOfCorrectType;
8+
import graphql.validation.rules.FieldsOnCorrectType;
9+
import graphql.validation.rules.FragmentsOnCompositeType;
10+
import graphql.validation.rules.KnownArgumentNames;
11+
import graphql.validation.rules.KnownDirectives;
12+
import graphql.validation.rules.KnownFragmentNames;
13+
import graphql.validation.rules.KnownTypeNames;
14+
import graphql.validation.rules.LoneAnonymousOperation;
15+
import graphql.validation.rules.NoFragmentCycles;
16+
import graphql.validation.rules.NoUndefinedVariables;
17+
import graphql.validation.rules.NoUnusedFragments;
18+
import graphql.validation.rules.NoUnusedVariables;
19+
import graphql.validation.rules.OverlappingFieldsCanBeMerged;
20+
import graphql.validation.rules.PossibleFragmentSpreads;
21+
import graphql.validation.rules.ProvidedNonNullArguments;
22+
import graphql.validation.rules.ScalarLeafs;
23+
import graphql.validation.rules.VariableDefaultValuesOfCorrectType;
24+
import graphql.validation.rules.VariableTypesMatchRule;
25+
import graphql.validation.rules.VariablesAreInputTypes;
726

827
import java.util.ArrayList;
928
import java.util.List;
1029

30+
@Internal
1131
public class Validator {
1232

1333
public List<ValidationError> validateDocument(GraphQLSchema schema, Document document) {
@@ -24,15 +44,15 @@ public List<ValidationError> validateDocument(GraphQLSchema schema, Document doc
2444

2545
private List<AbstractRule> createRules(ValidationContext validationContext, ValidationErrorCollector validationErrorCollector) {
2646
List<AbstractRule> rules = new ArrayList<>();
27-
47+
2848
ArgumentsOfCorrectType argumentsOfCorrectType = new ArgumentsOfCorrectType(validationContext, validationErrorCollector);
2949
rules.add(argumentsOfCorrectType);
30-
50+
3151
FieldsOnCorrectType fieldsOnCorrectType = new FieldsOnCorrectType(validationContext, validationErrorCollector);
3252
rules.add(fieldsOnCorrectType);
3353
FragmentsOnCompositeType fragmentsOnCompositeType = new FragmentsOnCompositeType(validationContext, validationErrorCollector);
3454
rules.add(fragmentsOnCompositeType);
35-
55+
3656
KnownArgumentNames knownArgumentNames = new KnownArgumentNames(validationContext, validationErrorCollector);
3757
rules.add(knownArgumentNames);
3858
KnownDirectives knownDirectives = new KnownDirectives(validationContext, validationErrorCollector);
@@ -41,7 +61,7 @@ private List<AbstractRule> createRules(ValidationContext validationContext, Vali
4161
rules.add(knownFragmentNames);
4262
KnownTypeNames knownTypeNames = new KnownTypeNames(validationContext, validationErrorCollector);
4363
rules.add(knownTypeNames);
44-
64+
4565
NoFragmentCycles noFragmentCycles = new NoFragmentCycles(validationContext, validationErrorCollector);
4666
rules.add(noFragmentCycles);
4767
NoUndefinedVariables noUndefinedVariables = new NoUndefinedVariables(validationContext, validationErrorCollector);
@@ -50,18 +70,18 @@ private List<AbstractRule> createRules(ValidationContext validationContext, Vali
5070
rules.add(noUnusedFragments);
5171
NoUnusedVariables noUnusedVariables = new NoUnusedVariables(validationContext, validationErrorCollector);
5272
rules.add(noUnusedVariables);
53-
73+
5474
OverlappingFieldsCanBeMerged overlappingFieldsCanBeMerged = new OverlappingFieldsCanBeMerged(validationContext, validationErrorCollector);
5575
rules.add(overlappingFieldsCanBeMerged);
56-
76+
5777
PossibleFragmentSpreads possibleFragmentSpreads = new PossibleFragmentSpreads(validationContext, validationErrorCollector);
5878
rules.add(possibleFragmentSpreads);
5979
ProvidedNonNullArguments providedNonNullArguments = new ProvidedNonNullArguments(validationContext, validationErrorCollector);
6080
rules.add(providedNonNullArguments);
61-
81+
6282
ScalarLeafs scalarLeafs = new ScalarLeafs(validationContext, validationErrorCollector);
6383
rules.add(scalarLeafs);
64-
84+
6585
VariableDefaultValuesOfCorrectType variableDefaultValuesOfCorrectType = new VariableDefaultValuesOfCorrectType(validationContext, validationErrorCollector);
6686
rules.add(variableDefaultValuesOfCorrectType);
6787
VariablesAreInputTypes variablesAreInputTypes = new VariablesAreInputTypes(validationContext, validationErrorCollector);
@@ -71,7 +91,7 @@ private List<AbstractRule> createRules(ValidationContext validationContext, Vali
7191

7292
LoneAnonymousOperation loneAnonymousOperation = new LoneAnonymousOperation(validationContext, validationErrorCollector);
7393
rules.add(loneAnonymousOperation);
74-
94+
7595
return rules;
7696
}
7797
}

src/main/java/graphql/validation/rules/NoFragmentCycles.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@
55
import graphql.language.FragmentDefinition;
66
import graphql.language.FragmentSpread;
77
import graphql.language.Node;
8-
import graphql.validation.*;
8+
import graphql.validation.AbstractRule;
9+
import graphql.validation.DocumentVisitor;
10+
import graphql.validation.ErrorFactory;
11+
import graphql.validation.LanguageTraversal;
12+
import graphql.validation.ValidationContext;
13+
import graphql.validation.ValidationErrorCollector;
14+
import graphql.validation.ValidationErrorType;
915

1016
import java.util.ArrayList;
1117
import java.util.LinkedHashMap;
@@ -35,7 +41,7 @@ private void prepareFragmentMap() {
3541

3642
private List<FragmentSpread> gatherSpreads(FragmentDefinition fragmentDefinition) {
3743
final List<FragmentSpread> fragmentSpreads = new ArrayList<>();
38-
QueryLanguageVisitor visitor = new QueryLanguageVisitor() {
44+
DocumentVisitor visitor = new DocumentVisitor() {
3945
@Override
4046
public void enter(Node node, List<Node> path) {
4147
if (node instanceof FragmentSpread) {

0 commit comments

Comments
 (0)