blob: d6be3a3f8b17e1d68b6b9335b6918dcfb7066e5b [file] [log] [blame]
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
package org.apache.sling.graphql.api.engine;
import java.util.List;
import java.util.Map;
import org.apache.sling.api.resource.Resource;
import org.jetbrains.annotations.NotNull;
import org.osgi.annotation.versioning.ProviderType;
/**
* The {@code ValidationResult} interface defines the result returned by {@link QueryExecutor#validate(String, Map, Resource, String[])} and
* helps additional services to pre-validate a GraphQL query without executing it.
*/
@ProviderType
public interface ValidationResult {
/**
* Provides a simple way check if a query is valid or not.
*
* @return {@code true} if the query is valid, {@code false} otherwise
*/
boolean isValid();
/**
* Returns a list of errors encountered while validating the query.
*
* @return a list of errors encountered while validating the query; an empty list means that no issues were encountered.
*/
@NotNull
List<String> getErrors();
}