in src/main/java/org/apache/sling/graphql/core/engine/DefaultQueryExecutor.java [174:196]
public ValidationResult validate(@NotNull String query, @NotNull Map<String, Object> variables, @NotNull Resource queryResource,
@NotNull String[] selectors) {
try {
final ExecutionContext ctx = new ExecutionContext(query, variables, queryResource, selectors);
ParseAndValidateResult parseAndValidateResult = ParseAndValidate.parseAndValidate(ctx.schema, ctx.input);
if (!parseAndValidateResult.isFailure()) {
return DefaultValidationResult.Builder.newBuilder().withValidFlag(true).build();
}
DefaultValidationResult.Builder validationResultBuilder = DefaultValidationResult.Builder.newBuilder().withValidFlag(false);
for (GraphQLError error : parseAndValidateResult.getErrors()) {
StringBuilder sb = new StringBuilder();
sb.append("Error: type=").append(error.getErrorType().toString()).append("; ");
sb.append("message=").append(error.getMessage()).append("; ");
for (SourceLocation location : error.getLocations()) {
sb.append("location=").append(location.getLine()).append(",").append(location.getColumn()).append(";");
}
validationResultBuilder.withErrorMessage(sb.toString());
}
return validationResultBuilder.build();
} catch (Exception e) {
return DefaultValidationResult.Builder.newBuilder().withValidFlag(false).withErrorMessage(e.getMessage()).build();
}
}