/**
* <copyright>
*
* Copyright (c) 2006-2017 Thales Global Services S.A.S.
* 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:
* Thales Global Services S.A.S. - initial API and implementation
*
* </copyright>
*/
package org.eclipse.emf.diffmerge.ui.sirius;
import java.util.Collection;
import java.util.Collections;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.diffmerge.api.scopes.IEditableModelScope;
import org.eclipse.emf.diffmerge.sirius.SiriusScope;
import org.eclipse.emf.diffmerge.ui.gmf.GMFScopeDefinitionFactory;
import org.eclipse.emf.diffmerge.ui.specification.IModelScopeDefinition;
import org.eclipse.emf.diffmerge.ui.specification.ext.URIScopeDefinition;
import org.eclipse.emf.edit.domain.EditingDomain;
/**
* A factory for comparison scopes within Sirius models.
*/
public class SiriusScopeFactory extends GMFScopeDefinitionFactory {
/**
* @see org.eclipse.emf.diffmerge.ui.gmf.GMFScopeDefinitionFactory#createScopeDefinitionFromURI(org.eclipse.emf.common.util.URI, java.lang.String, boolean)
*/
@Override
protected IModelScopeDefinition createScopeDefinitionFromURI(URI uri_p, String label_p,
boolean editable_p) {
return new URIScopeDefinition(uri_p, label_p, editable_p) {
/**
* @see org.eclipse.emf.diffmerge.ui.specification.ext.URIScopeDefinition#createScopeOnEditingDomain(org.eclipse.emf.edit.domain.EditingDomain)
*/
@Override
protected IEditableModelScope createScopeOnEditingDomain(EditingDomain editingDomain) {
return new SiriusScope(getEntrypoint(), editingDomain, !isEditable());
}
};
}
/**
* @see org.eclipse.emf.diffmerge.ui.gmf.GMFScopeDefinitionFactory#getOverridenClasses()
*/
@Override
public Collection<? extends Class<?>> getOverridenClasses() {
return Collections.<Class<?>>singleton(GMFScopeDefinitionFactory.class);
}
}