tmf: Move TmfWorkspaceModifyOperation to public package
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.ui / src / org / eclipse / tracecompass / internal / tmf / ui / project / operations / TmfWorkspaceModifyOperation.java
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/operations/TmfWorkspaceModifyOperation.java b/tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/operations/TmfWorkspaceModifyOperation.java
deleted file mode 100644 (file)
index 6fe11e1..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014 Ericsson
- *
- * 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:
- *   Bernd Hufmann - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.tracecompass.internal.tmf.ui.project.operations;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Operation to modify the workspace that refreshes workspace at the end of the operation.
- *
- * For refreshing periodically use {@link WorkspaceModifyOperation} instead.
- *
- * @author Bernd Hufmann
- *
- */
-public abstract class TmfWorkspaceModifyOperation implements IRunnableWithProgress {
-
-    private ISchedulingRule rule;
-
-    /**
-     * Creates a new operation.
-     */
-    protected TmfWorkspaceModifyOperation() {
-        this(ResourcesPlugin.getWorkspace().getRoot());
-    }
-
-    /**
-     * Creates a new operation that will run using the provided scheduling rule.
-     *
-     * @param rule
-     *            The ISchedulingRule to use or <code>null</code>.
-     */
-    protected TmfWorkspaceModifyOperation(ISchedulingRule rule) {
-        this.rule = rule;
-    }
-
-    @Override
-    public final synchronized void run(IProgressMonitor monitor)
-            throws InvocationTargetException, InterruptedException {
-        final InvocationTargetException[] iteHolder = new InvocationTargetException[1];
-        try {
-            IWorkspaceRunnable workspaceRunnable = new IWorkspaceRunnable() {
-                @Override
-                public void run(IProgressMonitor pm) throws CoreException {
-                    try {
-                        execute(pm);
-                    } catch (InvocationTargetException e) {
-                        // Pass it outside the workspace runnable
-                        iteHolder[0] = e;
-                    } catch (InterruptedException e) {
-                        // Re-throw as OperationCanceledException, which will be
-                        // caught and re-thrown as InterruptedException below.
-                        throw new OperationCanceledException(e.getMessage());
-                    }
-                    // CoreException and OperationCanceledException are propagated
-                }
-            };
-
-            IWorkspace workspace = ResourcesPlugin.getWorkspace();
-            workspace.run(workspaceRunnable, rule, IWorkspace.AVOID_UPDATE, monitor);
-        } catch (CoreException e) {
-            throw new InvocationTargetException(e);
-        } catch (OperationCanceledException e) {
-            throw new InterruptedException(e.getMessage());
-        }
-        // Re-throw the InvocationTargetException, if any occurred
-        if (iteHolder[0] != null) {
-            throw iteHolder[0];
-        }
-    }
-
-    /**
-     * Performs the steps that are to be treated as a single logical workspace
-     * change.
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @param monitor
-     *            the progress monitor to use to display progress and field user
-     *            requests to cancel
-     * @exception CoreException
-     *                if the operation fails due to a CoreException
-     * @exception InvocationTargetException
-     *                if the operation fails due to an exception other than
-     *                CoreException
-     * @exception InterruptedException
-     *                if the operation detects a request to cancel, using
-     *                <code>IProgressMonitor.isCanceled()</code>, it should exit
-     *                by throwing <code>InterruptedException</code>. It is also
-     *                possible to throw <code>OperationCanceledException</code>,
-     *                which gets mapped to <code>InterruptedException</code> by
-     *                the <code>run</code> method.
-     */
-    protected abstract void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException, InterruptedException;
-}
\ No newline at end of file
This page took 0.024459 seconds and 5 git commands to generate.