/*
 * 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.support.descriptor;

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

import org.junit.gen5.commons.meta.API;
import org.junit.gen5.commons.util.Preconditions;
import org.junit.gen5.engine.UniqueId;

/**
 * @since 5.0
 */
@API(Experimental)
public class EngineDescriptor extends AbstractTestDescriptor {

	private final String displayName;

	public EngineDescriptor(UniqueId uniqueId, String displayName) {
		super(uniqueId);
		this.displayName = Preconditions.notBlank(displayName, "display name must not be null or empty");
	}

	@Override
	public final String getDisplayName() {
		return this.displayName;
	}

	@Override
	public final boolean isTest() {
		return false;
	}

	@Override
	public final boolean isContainer() {
		return true;
	}

}

@@ -548,494 +548,1410 @@
 ine.
-UniqueId;%0A%0A/**%0A * @since 5.0%0A */%0A@API(Experimental)%0Apublic class EngineDescriptor extends AbstractTestDescriptor %7B%0A%0A%09private final String displayName;%0A%0A%09public EngineDescriptor(UniqueId uniqueId, String displayName) %7B%0A%09%09super(uniqueId);%0A%09%09this.displayName = Preconditions.notBlank(displayName, %22display name must not be null or empty%22);%0A%09%7D%0A%0A%09@Override%0A%09public final String getDisplayName() %7B%0A%09%09return this.displayName;%0A%09%7D%0A%0A%09@Override%0A%09public final boolean isTest() %7B%0A%09%09return false;%0A%09%7D%0A
+TestDescriptor;%0Aimport org.junit.gen5.engine.TestEngine;%0Aimport org.junit.gen5.engine.UniqueId;%0A%0A/**%0A * An %7B@code EngineDescriptor%7D is a %7B@link TestDescriptor%7D for a specific%0A * %7B@link TestEngine%7D.%0A *%0A * @since 5.0%0A */%0A@API(Experimental)%0Apublic class EngineDescriptor extends AbstractTestDescriptor %7B%0A%0A%09private final String displayName;%0A%0A%09/**%0A%09 * Create a new %7B@code EngineDescriptor%7D with the supplied %7B@link UniqueId%7D%0A%09 * and display name.%0A%09 *%0A%09 * @param uniqueId the %7B@code UniqueId%7D for the described %7B@code TestEngine%7D;%0A%09 * never %7B@code null%7D%0A%09 * @param displayName the display name for the  described %7B@code TestEngine%7D;%0A%09 * never %7B@code null%7D or empty%0A%09 * @see TestEngine#getId()%0A%09 * @see TestDescriptor#getDisplayName()%0A%09 */%0A%09public EngineDescriptor(UniqueId uniqueId, String displayName) %7B%0A%09%09super(uniqueId);%0A%09%09this.displayName = Preconditions.notBlank(displayName, %22display name must not be null or empty%22);%0A%09%7D%0A%0A%09@Override%0A%09public final String getDisplayName() %7B%0A%09%09return this.displayName;%0A%09%7D%0A%0A%09/**%0A%09 * Always returns %7B@code false%7D: a %7B@link TestEngine%7D is never a test.%0A%09 *%0A%09 * @see org.junit.gen5.engine.TestDescriptor#isTest()%0A%09 * @see #isContainer()%0A%09 */%0A%09@Override%0A%09public final boolean isTest() %7B%0A%09%09return false;%0A%09%7D%0A%0A%09/**%0A%09 * Always returns %7B@code true%7D: a %7B@link TestEngine%7D is always a container.%0A%09 *%0A%09 * @see org.junit.gen5.engine.TestDescriptor#isContainer()%0A%09 * @see #isTest()%0A%09 */
 %0A%09@O

Document EngineDescriptor