/******************************************************************************* * Copyright (c) 2013 Obeo. * 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: * Obeo - initial API and implementation *******************************************************************************/ package org.eclipse.emf.compare.command.impl; import java.util.Collection; import java.util.List; import org.eclipse.emf.common.notify.Notifier; import org.eclipse.emf.compare.Diff; import org.eclipse.emf.compare.domain.IMergeRunnable; import org.eclipse.emf.compare.merge.IMerger; import org.eclipse.emf.ecore.change.util.ChangeRecorder; /** * A merge command that delegates it {@link #doExecute()} to the * {@link IMergeRunnable#merge(List, boolean, IMerger.Registry)} method. * * @author Mikael Barbero */ public class MergeCommand extends AbstractCopyCommand { /** The merge runnable to delegate to. */ private final IMergeRunnable runnable; /** * Creates a new instance. * * @param changeRecorder * The change recorder associated to this command. * @param notifiers * The collection of notifiers that will be notified of this command's execution. * @param differences * The list of differences that this command should merge. * @param leftToRight * The direction in which {@code differences} should be merged. * @param mergerRegistry * The registry of mergers. * @param runnable * The merge runnable to delegate to. */ public MergeCommand(ChangeRecorder changeRecorder, Collection notifiers, List differences, boolean leftToRight, IMerger.Registry mergerRegistry, IMergeRunnable runnable) { super(changeRecorder, notifiers, differences, leftToRight, mergerRegistry); this.runnable = runnable; } /** * {@inheritDoc} * * @see org.eclipse.emf.edit.command.ChangeCommand#doExecute() */ @Override protected void doExecute() { runnable.merge(differences, leftToRight, mergerRegistry); } }