blob: f228931289dffdca1a8ba957aec12c39cbb63f5f [file] [log] [blame]
/**
* <copyright>
*
* Copyright (c) 2014 itemis and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
*
* Contributors:
* itemis - Initial API and implementation
*
* </copyright>
*/
package org.eclipse.sphinx.platform.operations;
import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
/**
* Enhancement of {@link ILabeledWorkspaceRunnable} to provide support for simple (i.e., non-undoable) operations in the
* workspace that need to report progress, want to expose an operation label and define their own
* {@link ISchedulingRule scheduling rule}.
*
* @see ILabeledWorkspaceRunnable
* @see IWorkspaceRunnable
* @see ISchedulingRule
*/
public interface IWorkspaceOperation extends ILabeledWorkspaceRunnable {
/**
* Returns the {@link ISchedulingRule scheduling rule} required by this operation.
*
* @return The scheduling rule or <code>null</code> if no such is required.
*/
ISchedulingRule getRule();
}