Skip to content

Commit d194776

Browse files
committed
improving errors
1 parent e2ffea6 commit d194776

39 files changed

+170
-138
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package graphql;
2+
3+
4+
public enum ErrorType {
5+
6+
InvalidSyntax,
7+
ValidationError,
8+
DataFetchingException
9+
10+
}

src/main/java/graphql/ExceptionWhileDataFetching.java

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

33

4-
public class ExceptionWhileDataFetching implements GraphQLError{
4+
public class ExceptionWhileDataFetching implements GraphQLError {
55

66
private final Exception exception;
77

@@ -13,6 +13,12 @@ public Exception getException() {
1313
return exception;
1414
}
1515

16+
17+
@Override
18+
public ErrorType geErrorType() {
19+
return ErrorType.DataFetchingException;
20+
}
21+
1622
@Override
1723
public String toString() {
1824
return "ExceptionWhileDataFetching{" +

src/main/java/graphql/GraphQLError.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,8 @@
22

33

44
public interface GraphQLError {
5+
6+
7+
ErrorType geErrorType();
8+
59
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package graphql;
2+
3+
4+
public class InvalidSyntaxError implements GraphQLError {
5+
@Override
6+
public ErrorType geErrorType() {
7+
return ErrorType.InvalidSyntax;
8+
}
9+
}

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
public class AbstractRule {
99

1010
private final ValidationContext validationContext;
11-
private final ErrorCollector errorCollector;
11+
private final ValidationErrorCollector validationErrorCollector;
1212

1313
private ValidationUtil validationUtil = new ValidationUtil();
1414

15-
public AbstractRule(ValidationContext validationContext, ErrorCollector errorCollector) {
15+
public AbstractRule(ValidationContext validationContext, ValidationErrorCollector validationErrorCollector) {
1616
this.validationContext = validationContext;
17-
this.errorCollector = errorCollector;
17+
this.validationErrorCollector = validationErrorCollector;
1818
}
1919

2020

@@ -27,11 +27,11 @@ public void setValidationUtil(ValidationUtil validationUtil) {
2727
}
2828

2929
public void addError(ValidationError error){
30-
errorCollector.addError(error);
30+
validationErrorCollector.addError(error);
3131
}
3232

3333
public List<ValidationError> getErrors(){
34-
return errorCollector.getErrors();
34+
return validationErrorCollector.getErrors();
3535
}
3636

3737

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,42 @@
11
package graphql.validation;
22

33

4+
import graphql.ErrorType;
45
import graphql.GraphQLError;
6+
import graphql.language.SourceLocation;
57

68
public class ValidationError implements GraphQLError {
79

8-
private final ValidationErrorType errorType;
910

10-
public ValidationError(ValidationErrorType errorType) {
11-
this.errorType = errorType;
11+
private final ValidationErrorType validationErrorType;
12+
private final SourceLocation sourceLocation;
13+
private final String description;
14+
15+
public ValidationError(ValidationErrorType validationErrorType) {
16+
this(validationErrorType, null, null);
17+
}
18+
19+
public ValidationError(ValidationErrorType validationErrorType, SourceLocation sourceLocation, String description) {
20+
this.validationErrorType = validationErrorType;
21+
this.sourceLocation = sourceLocation;
22+
this.description = description;
1223
}
1324

14-
public ValidationErrorType getErrorType() {
15-
return errorType;
25+
public ValidationErrorType getValidationErrorType() {
26+
return validationErrorType;
1627
}
1728

18-
// private final String description;
19-
20-
// public ValidationError(String description, Object... args) {
21-
// this.description = String.format(description, args);
22-
// }
23-
24-
// public String getDescription() {
25-
// return description;
26-
// }
27-
//
28-
// @Override
29-
// public String toString() {
30-
// return "ValidationError{" +
31-
// "description='" + description + '\'' +
32-
// '}';
33-
// }
29+
@Override
30+
public ErrorType geErrorType() {
31+
return ErrorType.ValidationError;
32+
}
33+
34+
@Override
35+
public String toString() {
36+
return "ValidationError{" +
37+
"validationErrorType=" + validationErrorType +
38+
", sourceLocation=" + sourceLocation +
39+
", description='" + description + '\'' +
40+
'}';
41+
}
3442
}

src/main/java/graphql/validation/ErrorCollector.java renamed to src/main/java/graphql/validation/ValidationErrorCollector.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import java.util.ArrayList;
55
import java.util.List;
66

7-
public class ErrorCollector {
7+
public class ValidationErrorCollector {
88

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

@@ -16,9 +16,9 @@ public List<ValidationError> getErrors(){
1616
return errors;
1717
}
1818

19-
public boolean containsError(ValidationErrorType validationErrorType){
19+
public boolean containsValidationError(ValidationErrorType validationErrorType){
2020
for(ValidationError validationError : errors){
21-
if(validationError.getErrorType() == validationErrorType) return true;
21+
if(validationError.getValidationErrorType() == validationErrorType) return true;
2222
}
2323
return false;
2424
}

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

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,49 +14,49 @@ public List<ValidationError> validateDocument(GraphQLSchema schema, Document doc
1414
ValidationContext validationContext = new ValidationContext(schema, document);
1515

1616

17-
ErrorCollector errorCollector = new ErrorCollector();
18-
List<AbstractRule> rules = createRules(validationContext, errorCollector);
17+
ValidationErrorCollector validationErrorCollector = new ValidationErrorCollector();
18+
List<AbstractRule> rules = createRules(validationContext, validationErrorCollector);
1919
LanguageTraversal languageTraversal = new LanguageTraversal();
2020
languageTraversal.traverse(document, new RulesVisitor(validationContext, rules));
2121

22-
return errorCollector.getErrors();
22+
return validationErrorCollector.getErrors();
2323
}
2424

25-
private List<AbstractRule> createRules(ValidationContext validationContext, ErrorCollector errorCollector) {
25+
private List<AbstractRule> createRules(ValidationContext validationContext, ValidationErrorCollector validationErrorCollector) {
2626
List<AbstractRule> rules = new ArrayList<>();
27-
ArgumentsOfCorrectType argumentsOfCorrectType = new ArgumentsOfCorrectType(validationContext, errorCollector);
27+
ArgumentsOfCorrectType argumentsOfCorrectType = new ArgumentsOfCorrectType(validationContext, validationErrorCollector);
2828
rules.add(argumentsOfCorrectType);
29-
VariableDefaultValuesOfCorrectType variableDefaultValuesOfCorrectType = new VariableDefaultValuesOfCorrectType(validationContext, errorCollector);
29+
VariableDefaultValuesOfCorrectType variableDefaultValuesOfCorrectType = new VariableDefaultValuesOfCorrectType(validationContext, validationErrorCollector);
3030
rules.add(variableDefaultValuesOfCorrectType);
31-
FieldsOnCorrectType fieldsOnCorrectType = new FieldsOnCorrectType(validationContext, errorCollector);
31+
FieldsOnCorrectType fieldsOnCorrectType = new FieldsOnCorrectType(validationContext, validationErrorCollector);
3232
rules.add(fieldsOnCorrectType);
33-
FragmentsOnCompositeType fragmentsOnCompositeType = new FragmentsOnCompositeType(validationContext, errorCollector);
33+
FragmentsOnCompositeType fragmentsOnCompositeType = new FragmentsOnCompositeType(validationContext, validationErrorCollector);
3434
rules.add(fragmentsOnCompositeType);
35-
KnownArgumentNames knownArgumentNames = new KnownArgumentNames(validationContext, errorCollector);
35+
KnownArgumentNames knownArgumentNames = new KnownArgumentNames(validationContext, validationErrorCollector);
3636
rules.add(knownArgumentNames);
37-
KnownFragmentNames knownFragmentNames = new KnownFragmentNames(validationContext, errorCollector);
37+
KnownFragmentNames knownFragmentNames = new KnownFragmentNames(validationContext, validationErrorCollector);
3838
rules.add(knownFragmentNames);
39-
KnownTypeNames knownTypeNames = new KnownTypeNames(validationContext, errorCollector);
39+
KnownTypeNames knownTypeNames = new KnownTypeNames(validationContext, validationErrorCollector);
4040
rules.add(knownTypeNames);
41-
NoFragmentCycles noFragmentCycles = new NoFragmentCycles(validationContext, errorCollector);
41+
NoFragmentCycles noFragmentCycles = new NoFragmentCycles(validationContext, validationErrorCollector);
4242
rules.add(noFragmentCycles);
43-
NoUndefinedVariables noUndefinedVariables = new NoUndefinedVariables(validationContext, errorCollector);
43+
NoUndefinedVariables noUndefinedVariables = new NoUndefinedVariables(validationContext, validationErrorCollector);
4444
rules.add(noUndefinedVariables);
45-
NoUnusedFragments noUnusedFragments = new NoUnusedFragments(validationContext, errorCollector);
45+
NoUnusedFragments noUnusedFragments = new NoUnusedFragments(validationContext, validationErrorCollector);
4646
rules.add(noUnusedFragments);
47-
NoUnusedVariables noUnusedVariables = new NoUnusedVariables(validationContext, errorCollector);
47+
NoUnusedVariables noUnusedVariables = new NoUnusedVariables(validationContext, validationErrorCollector);
4848
rules.add(noUnusedVariables);
49-
OverlappingFieldsCanBeMerged overlappingFieldsCanBeMerged = new OverlappingFieldsCanBeMerged(validationContext, errorCollector);
49+
OverlappingFieldsCanBeMerged overlappingFieldsCanBeMerged = new OverlappingFieldsCanBeMerged(validationContext, validationErrorCollector);
5050
rules.add(overlappingFieldsCanBeMerged);
51-
PossibleFragmentSpreads possibleFragmentSpreads = new PossibleFragmentSpreads(validationContext, errorCollector);
51+
PossibleFragmentSpreads possibleFragmentSpreads = new PossibleFragmentSpreads(validationContext, validationErrorCollector);
5252
rules.add(possibleFragmentSpreads);
53-
ProvidedNonNullArguments providedNonNullArguments = new ProvidedNonNullArguments(validationContext, errorCollector);
53+
ProvidedNonNullArguments providedNonNullArguments = new ProvidedNonNullArguments(validationContext, validationErrorCollector);
5454
rules.add(providedNonNullArguments);
55-
ScalarLeafs scalarLeafs = new ScalarLeafs(validationContext, errorCollector);
55+
ScalarLeafs scalarLeafs = new ScalarLeafs(validationContext, validationErrorCollector);
5656
rules.add(scalarLeafs);
57-
VariablesAreInputTypes variablesAreInputTypes = new VariablesAreInputTypes(validationContext, errorCollector);
57+
VariablesAreInputTypes variablesAreInputTypes = new VariablesAreInputTypes(validationContext, validationErrorCollector);
5858
rules.add(variablesAreInputTypes);
59-
VariableTypesMatchRule variableTypesMatchRule = new VariableTypesMatchRule(validationContext, errorCollector);
59+
VariableTypesMatchRule variableTypesMatchRule = new VariableTypesMatchRule(validationContext, validationErrorCollector);
6060
rules.add(variableTypesMatchRule);
6161
return rules;
6262
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
public class ArgumentsOfCorrectType extends AbstractRule {
99

10-
public ArgumentsOfCorrectType(ValidationContext validationContext, ErrorCollector errorCollector) {
11-
super(validationContext, errorCollector);
10+
public ArgumentsOfCorrectType(ValidationContext validationContext, ValidationErrorCollector validationErrorCollector) {
11+
super(validationContext, validationErrorCollector);
1212
}
1313

1414
@Override

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
public class FieldsOnCorrectType extends AbstractRule {
1010

1111

12-
public FieldsOnCorrectType(ValidationContext validationContext, ErrorCollector errorCollector) {
13-
super(validationContext, errorCollector);
12+
public FieldsOnCorrectType(ValidationContext validationContext, ValidationErrorCollector validationErrorCollector) {
13+
super(validationContext, validationErrorCollector);
1414
}
1515

1616

0 commit comments

Comments
 (0)