/*****************************************************************************
 * Copyright (c) 2016 CEA LIST and others.
 * 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *   CEA LIST - Initial API and implementation
 *   
 *****************************************************************************/

package org.eclipse.papyrus.moka.fuml.Semantics.Activities.IntermediateActivities;

public interface IForkedToken extends IToken {

	public void setBaseToken(IToken baseToken);

	public IToken getBaseToken();

	public void setRemainingOffersCount(Integer count);

	public Integer getRemainingOffersCount();

	public void setBaseTokenWithDrawn(Boolean status);

	public Boolean isBaseTokenWithdrawn();

}
