private void checkDirectivesUniqueness(Node<?> directivesContainer, List<Directive> directives) { Set<String> names = new LinkedHashSet<>(); directives.forEach(directive -> { String name = directive.getName(); if (names.contains(name)) { addError(ValidationErrorType.DuplicateDirectiveName, directive.getSourceLocation(), duplicateDirectiveNameMessage(name, directivesContainer.getClass().getSimpleName())); } else { names.add(name); } }); }
@Override public void checkDirective(Directive directive, List<Node> ancestors) { GraphQLDirective graphQLDirective = getValidationContext().getSchema().getDirective(directive.getName()); if (graphQLDirective == null) { String message = String.format("Unknown directive %s", directive.getName()); addError(ValidationErrorType.UnknownDirective, directive.getSourceLocation(), message); return; } Node ancestor = ancestors.get(ancestors.size() - 1); if (hasInvalidLocation(graphQLDirective, ancestor)) { String message = String.format("Directive %s not allowed here", directive.getName()); addError(ValidationErrorType.MisplacedDirective, directive.getSourceLocation(), message); } }
private Builder(Directive existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.name = existing.getName(); this.arguments = existing.getArguments(); this.ignoredChars = existing.getIgnoredChars(); }
@Override public Directive deepCopy() { return new Directive(name, deepCopy(arguments), getSourceLocation(), getComments(), getIgnoredChars()); }
@Override public void checkDirective(Directive directive, List<Node> ancestors) { GraphQLDirective graphQLDirective = getValidationContext().getDirective(); if (graphQLDirective == null) return; Map<String, Argument> argumentMap = argumentMap(directive.getArguments()); for (GraphQLArgument graphQLArgument : graphQLDirective.getArguments()) { Argument argument = argumentMap.get(graphQLArgument.getName()); if (argument == null && (isNonNull(graphQLArgument.getType()))) { String message = String.format("Missing directive argument %s", graphQLArgument.getName()); addError(ValidationErrorType.MissingDirectiveArgument, directive.getSourceLocation(), message); } } } }
private void checkDirectivesUniqueness(Node<?> directivesContainer, List<Directive> directives) { Set<String> names = new LinkedHashSet<>(); directives.forEach(directive -> { String name = directive.getName(); if (names.contains(name)) { addError(ValidationErrorType.DuplicateDirectiveName, directive.getSourceLocation(), duplicateDirectiveNameMessage(name, directivesContainer.getClass().getSimpleName())); } else { names.add(name); } }); }
@Override public void checkDirective(Directive directive, List<Node> ancestors) { GraphQLDirective graphQLDirective = getValidationContext().getSchema().getDirective(directive.getName()); if (graphQLDirective == null) { String message = String.format("Unknown directive %s", directive.getName()); addError(ValidationErrorType.UnknownDirective, directive.getSourceLocation(), message); return; } Node ancestor = ancestors.get(ancestors.size() - 1); if (hasInvalidLocation(graphQLDirective, ancestor)) { String message = String.format("Directive %s not allowed here", directive.getName()); addError(ValidationErrorType.MisplacedDirective, directive.getSourceLocation(), message); } }
private Builder(Directive existing) { this.sourceLocation = existing.getSourceLocation(); this.comments = existing.getComments(); this.name = existing.getName(); this.arguments = existing.getArguments(); this.ignoredChars = existing.getIgnoredChars(); }
@Override public Directive deepCopy() { return new Directive(name, deepCopy(arguments), getSourceLocation(), getComments(), getIgnoredChars()); }
@Override public void checkDirective(Directive directive, List<Node> ancestors) { GraphQLDirective graphQLDirective = getValidationContext().getDirective(); if (graphQLDirective == null) return; Map<String, Argument> argumentMap = argumentMap(directive.getArguments()); for (GraphQLArgument graphQLArgument : graphQLDirective.getArguments()) { Argument argument = argumentMap.get(graphQLArgument.getName()); if (argument == null && (isNonNull(graphQLArgument.getType()))) { String message = String.format("Missing directive argument %s", graphQLArgument.getName()); addError(ValidationErrorType.MissingDirectiveArgument, directive.getSourceLocation(), message); } } } }