/*
 * Copyright 2015-2016 the original author or authors.
 *
 * All rights reserved. This program and the accompanying materials are
 * made available under the terms of the Eclipse Public License v1.0 which
 * accompanies this distribution and is available at
 *
 * http://www.eclipse.org/legal/epl-v10.html
 */

package org.junit.gen5.engine;

import static org.junit.gen5.commons.meta.API.Usage.Experimental;

import java.util.List;

import org.junit.gen5.commons.meta.API;

/**
 * An {@code EngineDiscoveryRequest} gives {@link TestEngine}s
 * access to the information necessary to discover {@link TestDescriptor}s.
 *
 * @since 5.0
 */
@API(Experimental)
public interface EngineDiscoveryRequest {

	List<DiscoverySelector> getSelectors();

	<T extends DiscoverySelector> List<T> getSelectorsByType(Class<T> selectorType);

	<T extends DiscoveryFilter<?>> List<T> getDiscoveryFiltersByType(Class<T> filterType);

	ConfigurationParameters getConfigurationParameters();
}

@@ -482,351 +482,1460 @@
 %0A * 
-An %7B@code EngineDiscoveryRequest%7D gives %7B@link TestEngine%7Ds%0A * access to the information necessary to discover %7B@link TestDescriptor%7Ds.%0A *%0A * @since 5.0%0A */%0A@API(Experimental)%0Apublic interface EngineDiscoveryRequest %7B%0A%0A%09List%3CDiscoverySelector%3E getSelectors();%0A%0A%09%3CT extends DiscoverySelector%3E List%3CT%3E getSelectorsByType(Class%3CT%3E selectorType);%0A
+Provides %7B@link TestEngine TestEngines%7D access to the information necessary%0A * to discover %7B@link TestDescriptor TestDescriptors%7D.%0A *%0A * %3Cp%3EA request is comprised of %7B@linkplain DiscoverySelector selectors%7D and%0A * %7B@linkplain DiscoveryFilter filters%7D. While the former describe which tests%0A * are to be %3Cem%3Eselected%3C/em%3E, the latter specify how they are to be%0A * %3Cem%3Efiltered%3C/em%3E.%0A *%0A * %3Cp%3EIn addition, the supplied%0A * %7B@linkplain ConfigurationParameters configuration parameters%7D may be used to%0A * influence the discovery process.%0A *%0A * @see DiscoverySelector%0A * @see DiscoveryFilter%0A * @since 5.0%0A */%0A@API(Experimental)%0Apublic interface EngineDiscoveryRequest %7B%0A%0A%09/**%0A%09 * Get the %7B@link DiscoverySelector DiscoverySelectors%7D of this request.%0A%09 */%0A%09List%3CDiscoverySelector%3E getSelectors();%0A%0A%09/**%0A%09 * Get the %7B@link DiscoverySelector DiscoverySelectors%7D of this request%0A%09 * filtered by a particular type.%0A%09 *%0A%09 * @param selectorType the type of %7B@link DiscoverySelector%7D to filter for%0A%09 * @return all selectors of this request that are instances of%0A%09 *         %7B@code selectorType%7D%0A%09 */%0A%09%3CT extends DiscoverySelector%3E List%3CT%3E getSelectorsByType(Class%3CT%3E selectorType);%0A%0A%09/**%0A%09 * Get the %7B@link DiscoveryFilter DiscoveryFilters%7D of this request filtered%0A%09 * by a particular type.%0A%09 *%0A%09 * @param filterType the type of %7B@link DiscoveryFilter%7D to filter for%0A%09 * @return all filters of this request that are instances of%0A%09 *         %7B@code filterType%7D%0A%09 */
 %0A%09%3CT
@@ -2020,16 +2020,87 @@
 Type);%0A%0A
+%09/**%0A%09 * Get the %7B@link ConfigurationParameters%7D of this request.%0A%09 */%0A
 %09Configu

Document EngineDiscoveryRequest (#234)