/*******************************************************************************
 * Copyright (c) 2003 International Business Machines Corp. and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v0.5 
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v05.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 ******************************************************************************/
package org.eclipse.ltk.core.refactoring.participants;

public abstract class RenameParticipant extends RefactoringParticipant {

	private RenameArguments fArguments;

	/**
	 * {@inheritDoc}
	 */
	protected void initialize(RefactoringArguments arguments) {
		fArguments= (RenameArguments)arguments;
	}
	
	public RenameArguments getArguments() {
		return fArguments;
	}
}
