blob: 668ceb9065258e1e89c4554ffec95c1e48ecbe84 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2015 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which accompanies this distribution,
t https://www.eclipse.org/legal/epl-2.0/
t
t SPDX-License-Identifier: EPL-2.0
*
* Contributors: IBM - Initial API and implementation
******************************************************************************/
package org.eclipse.core.tests.internal.builders;
import java.util.Map;
import org.eclipse.core.resources.*;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.junit.Assert;
/**
* A test builder that allows specification of what build triggers it responds to.
*/
public class CustomTriggerBuilder extends TestBuilder {
public static final String BUILDER_NAME = "org.eclipse.core.tests.resources.flexbuilder";
private static CustomTriggerBuilder singleton;
int triggerForLastBuild;
/**
* Returns the singleton instance, or null if none has been created.
*/
public static CustomTriggerBuilder getInstance() {
return singleton;
}
public static void resetSingleton() {
singleton = null;
}
public CustomTriggerBuilder() {
singleton = this;
}
@Override
protected IProject[] build(int kind, Map<String, String> args, IProgressMonitor monitor) throws CoreException {
triggerForLastBuild = kind;
return super.build(kind, args, monitor);
}
@Override
protected void clean(IProgressMonitor monitor) throws CoreException {
super.clean(monitor);
triggerForLastBuild = IncrementalProjectBuilder.CLEAN_BUILD;
IResourceDelta delta = getDelta(getProject());
Assert.assertNull(delta);
}
public void clearBuildTrigger() {
triggerForLastBuild = 0;
}
public boolean wasAutobuild() {
return triggerForLastBuild == IncrementalProjectBuilder.AUTO_BUILD;
}
public boolean wasCleanBuild() {
return triggerForLastBuild == IncrementalProjectBuilder.CLEAN_BUILD;
}
public boolean wasFullBuild() {
return triggerForLastBuild == IncrementalProjectBuilder.FULL_BUILD;
}
public boolean wasIncrementalBuild() {
return triggerForLastBuild == IncrementalProjectBuilder.INCREMENTAL_BUILD;
}
}