/*******************************************************************************
 * Copyright (c) 2007, 2010 BMW Car IT, Technische Universitaet Muenchen, 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, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 * BMW Car IT - Initial API and implementation
 * Technische Universitaet Muenchen - Major refactoring and extension
 *******************************************************************************/
package org.eclipse.emf.edapt.history.reconstruction;

// CB Migrate
// import org.eclipse.emf.compare.diff.metamodel.DiffElement;
// import org.eclipse.emf.compare.diff.metamodel.ResourceDependencyChange;

/**
 * A filter for diff models that filters out changes which span resources
 *
 * @author herrmama
 * @author $Author$
 * @version $Rev$
 * @levd.rating RED Rev:
 */
public class DiffModelResourceFilter implements IDiffModelFilter {

	/** Shared instance. */
	public static final DiffModelResourceFilter INSTANCE = new DiffModelResourceFilter();

	/** {@inheritDoc} */
	// CB Migrate
	// public boolean select(DiffElement element) {
	// if (element instanceof ResourceDependencyChange) {
	// return false;
	// }
	// return true;
	// }
}
