/** * <copyright> * * Copyright (c) 2010-2016 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.specification; import org.eclipse.emf.diffmerge.api.scopes.IEditableModelScope; /** * A model scope definition relates an object selected by the user to a model scope. * @author Olivier Constant */ public interface IModelScopeDefinition { /** * Create and return a scope that corresponds to this scope definition * @param context_p an optional context for the scope, for example a resource set or editing domain * for the case where resource creation is needed * @return a scope which is null if operation failed */ IEditableModelScope createScope(Object context_p); /** * Return the object that specifies the scope (model element, file, resource...) * @return a non-null object */ Object getEntrypoint(); /** * Return a label that identifies the scope * @return a non-null label */ String getLabel(); /** * Return a short label that identifies the scope * @return a non-null label */ String getShortLabel(); /** * Return whether the content of the scope can be modified */ boolean isEditable(); /** * Return whether the editable property can be changed */ boolean isEditableSettable(); /** * Set whether the content of the scope is allowed to be modified */ void setEditable(boolean editable_p); }