/** * Copyright (c) 2014 - 2017 Frank Appel * 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 * * Contributors: * Frank Appel - initial API and implementation */ package com.codeaffine.eclipse.core.runtime.internal; import static com.codeaffine.eclipse.core.runtime.ExtensionExceptionHandler.DEFAULT_HANDLER; import static com.codeaffine.eclipse.core.runtime.TestExtension.EXTENSION_POINT; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.Platform; import com.codeaffine.eclipse.core.runtime.ExecutableExtensionConfigurator; import com.codeaffine.eclipse.core.runtime.ExecutableExtensionConfigurator.DefaultConfigurator; import com.codeaffine.eclipse.core.runtime.ExtensionExceptionHandler; import com.codeaffine.eclipse.core.runtime.TestExceptionHandler; import com.codeaffine.eclipse.core.runtime.TestExtension; import com.codeaffine.eclipse.core.runtime.TestExtensionConfigurator; class ExtensionCreatorHelper { static final String EXTENSION_ID = "1"; static ExtensionCreator<TestExtension> newExtensionCreator( String typeAttribute, TestExceptionHandler exceptionHandler ) { return newExtensionCreator( exceptionHandler, new DefaultConfigurator<TestExtension>(), typeAttribute ); } static ExtensionCreator<TestExtension> newExtensionCreator() { return newExtensionCreator( "class" ); } static ExtensionCreator<TestExtension> newExtensionCreator( String typeAttribute ) { return newExtensionCreator( DEFAULT_HANDLER, new DefaultConfigurator<TestExtension>(), typeAttribute ); } static ExtensionCreator<TestExtension> newExtensionCreator( TestExtensionConfigurator configurator ) { return newExtensionCreator( DEFAULT_HANDLER, configurator, "class" ); } private static ExtensionCreator<TestExtension> newExtensionCreator( ExtensionExceptionHandler exceptionHandler, ExecutableExtensionConfigurator<TestExtension> configurator, String typeAttribute ) { IConfigurationElement element = findFirstTestContribution(); return new ExtensionCreator<TestExtension>( element, TestExtension.class, exceptionHandler, configurator, typeAttribute ); } private static IConfigurationElement findFirstTestContribution() { return Platform.getExtensionRegistry().getConfigurationElementsFor( EXTENSION_POINT )[ 0 ]; } }