Copyright (c) 2000, 2009 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2000, 2009 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.jdt.internal.core; import org.eclipse.core.resources.IResourceStatus; import org.eclipse.core.resources.IWorkspaceRunnable; import org.eclipse.core.runtime.CoreException; import org.eclipse.jdt.core.IJavaModelStatus; import org.eclipse.jdt.core.JavaModelException;
An operation created as a result of a call to JavaCore.run(IWorkspaceRunnable, IProgressMonitor) that encapsulates a user defined IWorkspaceRunnable.
/** * An operation created as a result of a call to JavaCore.run(IWorkspaceRunnable, IProgressMonitor) * that encapsulates a user defined IWorkspaceRunnable. */
public class BatchOperation extends JavaModelOperation { protected IWorkspaceRunnable runnable; public BatchOperation(IWorkspaceRunnable runnable) { this.runnable = runnable; } @Override protected boolean canModifyRoots() { // anything in the workspace runnable can modify the roots return true; } @Override protected void executeOperation() throws JavaModelException { try { this.runnable.run(this.progressMonitor); } catch (CoreException ce) { if (ce instanceof JavaModelException) { throw (JavaModelException)ce; } else { if (ce.getStatus().getCode() == IResourceStatus.OPERATION_FAILED) { Throwable e= ce.getStatus().getException(); if (e instanceof JavaModelException) { throw (JavaModelException) e; } } throw new JavaModelException(ce); } } } @Override protected IJavaModelStatus verify() { // cannot verify user defined operation return JavaModelStatus.VERIFIED_OK; } }