/*******************************************************************************
 * Copyright (c) 2004-2008 Andras Schmidt, Andras Balogh, Istvan Rath and Daniel Varro
 * 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:
 *    Andras Schmidt, Andras Balogh, Istvan Rath - initial API and implementation
 *******************************************************************************/

package org.eclipse.viatra2.core.simple.notification;

import org.eclipse.viatra2.core.notification.ICoreNotificationObjectUndoableTransactionBegin;
import org.eclipse.viatra2.core.notification.NotificationType;

public class NotificationObjectUndoableTransactionBegin extends
		NotificationObject implements ICoreNotificationObjectUndoableTransactionBegin {

	private Object info;

	public NotificationObjectUndoableTransactionBegin(Object i) {
		this.info = i;
	}

	public NotificationObjectUndoableTransactionBegin() {

	}

	public Object getInfo() {
		return info;
	}

	@Override
	public NotificationType getActionTypeEnum() {
		// TODO Auto-generated method stub
		return NotificationType.TA_UNDOABLE_TRANSACTION_BEGIN;
	}
}
