blob: a062ca2ce1a7e1731d0465b3aa8be6228b984b5c [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2005, 2006 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
****************************************************************************/
package org.eclipse.gmf.runtime.emf.type.core.requests;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.gmf.runtime.emf.type.core.IClientContext;
import org.eclipse.gmf.runtime.emf.type.core.IEditHelperContext;
/**
* Request for a command to edit a model element. These requests are passed to
* <code>IEditHelpers</code> to obtain commands that will execute the edit
* behaviour.
* <P>
* Clients should not implement this interface directly, but should subclass
* {@link org.eclipse.gmf.runtime.emf.type.core.requests.AbstractEditCommandRequest}instead.
*
* @author ldamus
*/
public interface IEditCommandRequest {
/**
* Name of the request parameter used to indicate that the default edit
* command should not be considered. Edit advice will completely replace the
* default edit behaviour if the parameter value is <code>Boolean.TRUE</code>.
*/
public static String REPLACE_DEFAULT_COMMAND = "IEditCommandRequest.replaceDefaultCommand"; //$NON-NLS-1$
/**
* Gets the request label.
*
* @return the request label
*/
public abstract String getLabel();
/**
* Gets the edit helper context for this request. The context can be an
* <code>IElementType</code> or an <code>EObject</code>, or an
* {@link IEditHelperContext}. It determines which edit helper should be
* used to find a command to do the work in the request.
*
* @return the edit helper context for this request
*/
public abstract Object getEditHelperContext();
/**
* Gets the elements that will be changed when the work is done for this
* request.
*
* @return the elements that will be edited
*/
public abstract List getElementsToEdit();
/**
* Gets the request parameters keyed on parameter name. Each value is the
* parameter value.
*
* @return the request parameters
*/
public abstract Map getParameters();
/**
* Sets the request parameter named <code>name</code> to
* <code>value</code>.
*
* @param name
* the parameter name
* @param value
* the parameter value
*/
public abstract void setParameter(String name, Object value);
/**
* Gets the value for the request parameter named <code>name</code>.
*
* @param name
* the parameter name
* @return the parameter value
*/
public abstract Object getParameter(String name);
/**
* Adds <code>newParameters</code> to this request.
*
* @param newParameters
* the parameters to be added
*/
public abstract void addParameters(Map newParameters);
/**
* Gets the editing domain in which I am requesting to make model changes.
*
* @return the editing domain
*/
public abstract TransactionalEditingDomain getEditingDomain();
/**
* Sets the client context for this request.
*
* @param clientContext the client context
*/
public abstract void setClientContext(IClientContext clientContext);
/**
* Gets the client context for this request.
*
* @return the client context
*/
public IClientContext getClientContext();
}