blob: ea0cf080009dce6fa3cd94e6d8f08442a1792936 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2010 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.gef;
import java.util.HashMap;
import java.util.Map;
/**
* An Object used to communicate with EditParts. Request encapsulates the
* information EditParts need to perform various functions. Requests are used
* for obtaining commands, showing feedback, and performing generic operations.
* TODO: This should probably go into the org.eclipse.gef.requests package.
*/
public class Request {
private Object type;
private Map extendedData;
/**
* Constructs an empty Request
*/
public Request() {
}
/**
* Constructs a Request with the specified <i>type</i>
*
* @param type
* the Request type
* @see #getType()
*/
public Request(Object type) {
setType(type);
}
/**
* Returns a Map that can be used to save useful information in this
* request.
*
* @return a map to store useful information
*/
public Map getExtendedData() {
if (extendedData == null) {
extendedData = new HashMap();
}
return extendedData;
}
/**
* Returns the type of the request. The type is often used as a quick way to
* filter recognized Requests. Once the type is identified, the Request is
* usually cast to a more specific subclass containing additional data.
*
* @return the Request <i>type</i>
*/
public Object getType() {
return type;
}
/**
* Sets the given map to be the new extended data (by reference) for this
* request.
*
* @param map
* The new map
*/
public void setExtendedData(Map map) {
extendedData = map;
}
/**
* Sets the type of the Request.
*
* @param type
* the Request type
*/
public void setType(Object type) {
this.type = type;
}
}