/*******************************************************************************
 * Copyright (c) 2000, 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.ltk.core.refactoring;

import org.eclipse.text.edits.TextEditGroup;

/**
 * This class is a wrapper around a {@link TextEditGroup TextEditGroup}
 * adding support for marking a group as active and inactive.
 * <p> 
 * Note: this class is not intended to be extended by clients.
 * </p>
 * 
 * @see TextEditGroup
 * 
 * @since 3.0
 */
public class TextEditChangeGroup extends TextEditBasedChangeGroup {

	/**
	 * Creates new <code>TextEditChangeGroup</code> for the given <code>
	 * TextChange</code> and <code>TextEditGroup</code>.
	 * 
	 * @param change the change owning this text edit change group
	 * @param group the underlying text edit group
	 */
	public TextEditChangeGroup(TextChange change, TextEditGroup group) {
		super(change, group);
	}

	/**
	 * Returns the text change this group belongs to.
	 * 
	 * @return the text change this group belongs to
	 */
	public TextChange getTextChange() {
		return (TextChange) getTextEditChange();
	}
}
