1 /******************************************************************************* 2 * Copyright (c) 2000, 2009 IBM Corporation and others. 3 * 4 * This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License 2.0 6 * which accompanies this distribution, and is available at 7 * https://www.eclipse.org/legal/epl-2.0/ 8 * 9 * SPDX-License-Identifier: EPL-2.0 10 * 11 * Contributors: 12 * IBM Corporation - initial API and implementation 13 *******************************************************************************/ 14 package org.eclipse.jdt.core.tests.model; 15 16 import org.eclipse.core.runtime.CoreException; 17 import org.eclipse.core.runtime.IPath; 18 import org.eclipse.jdt.core.ClasspathContainerInitializer; 19 import org.eclipse.jdt.core.IClasspathContainer; 20 import org.eclipse.jdt.core.IJavaProject; 21 22 public class ContainerInitializer extends ClasspathContainerInitializer { 23 public static ITestInitializer initializer; 24 25 public static interface ITestInitializer { initialize(IPath containerPath, IJavaProject project)26 public void initialize(IPath containerPath, IJavaProject project) throws CoreException; allowFailureContainer()27 public boolean allowFailureContainer(); 28 } 29 setInitializer(ITestInitializer initializer)30 public static void setInitializer(ITestInitializer initializer) { 31 ContainerInitializer.initializer = initializer; 32 } 33 getFailureContainer(IPath containerPath, IJavaProject project)34 public IClasspathContainer getFailureContainer(IPath containerPath, IJavaProject project) { 35 if (initializer == null || !initializer.allowFailureContainer()) return null; 36 return super.getFailureContainer(containerPath, project); 37 } 38 initialize(IPath containerPath, IJavaProject project)39 public void initialize(IPath containerPath, IJavaProject project) throws CoreException { 40 if (initializer == null) return; 41 initializer.initialize(containerPath, project); 42 } 43 } 44