blob: 7df5db4cdca5b825311af3d1b0f2040e6896ede5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 2014 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.scope;
import static com.google.common.base.Predicates.not;
import static org.eclipse.emf.compare.utils.EMFComparePredicates.IS_EGENERIC_TYPE_WITHOUT_PARAMETERS;
import org.eclipse.emf.common.notify.Notifier;
/**
* This is the default implementation of an {@link IComparisonScope}. When matching EObjects through their
* identifier, we simply retrieve all content under a {@link org.eclipse.emf.ecore.resource.Resource}, filter
* out the {@link org.eclipse.emf.ecore.EGenericType}s since they are handled through special means by EMF
* (mutually derived references such as eSuperTypes<->eGenericSuperTypes, eType<->eGenericType...) and
* iterate over this list as a whole.
*
* @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
*/
public class DefaultComparisonScope extends FilterComparisonScope {
/**
* Simply delegates to the super constructor.
*
* @param left
* Left root of this comparison.
* @param right
* Right root of this comparison.
* @param origin
* Common ancestor of <code>left</code> and <code>right</code>.
*/
public DefaultComparisonScope(Notifier left, Notifier right, Notifier origin) {
super(left, right, origin);
setEObjectContentFilter(not(IS_EGENERIC_TYPE_WITHOUT_PARAMETERS));
setResourceContentFilter(not(IS_EGENERIC_TYPE_WITHOUT_PARAMETERS));
}
}