blob: b0e9d5502e4ab5e55d510a294abeb6d3c30cdb0b [file] [log] [blame]
/**
* Copyright (c) 2015 CEA LIST.
*
* 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:
* Benoit Maggi (CEA LIST) benoit.maggi@cea.fr - Initial API and implementation
*
*/
package org.eclipse.papyrus.sysml14.activities;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.uml2.uml.ObjectNode;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Overwrite</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
*
* When the «overwrite» stereotype is applied to object nodes, a token arriving at a full object node replaces the ones already there (a full object node has as many tokens as allowed by its upper bound). This is typically used on an input pin with an upper bound of 1 to ensure that stale data is overridden at an input pin. For upper bounds greater than one, the token replaced is the one that would be the last to be selected according to the ordering kind for the node. For FIFO ordering, this is the most recently added token, for LIFO it is the least recently added token. A null token removes all the tokens already there. The number of tokens replaced is equal to the weight of the incoming edge, which defaults to 1. For object nodes that are the target of continuous flows, «overwrite» and «nobuffer» have the same effect. The stereotype does not override UML token offering semantics, just indicates what happens to the token when it is accepted. When the stereotype is not applied, the semantics is as in UML, specifically, tokens arriving at object nodes do not replace ones that are already there.
*
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.papyrus.sysml14.activities.Overwrite#getBase_ObjectNode <em>Base Object Node</em>}</li>
* </ul>
*
* @see org.eclipse.papyrus.sysml14.activities.ActivitiesPackage#getOverwrite()
* @model
* @generated
*/
public interface Overwrite extends EObject {
/**
* Returns the value of the '<em><b>Base Object Node</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Base Object Node</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Base Object Node</em>' reference.
* @see #setBase_ObjectNode(ObjectNode)
* @see org.eclipse.papyrus.sysml14.activities.ActivitiesPackage#getOverwrite_Base_ObjectNode()
* @model ordered="false"
* @generated
*/
ObjectNode getBase_ObjectNode();
/**
* Sets the value of the '{@link org.eclipse.papyrus.sysml14.activities.Overwrite#getBase_ObjectNode <em>Base Object Node</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Base Object Node</em>' reference.
* @see #getBase_ObjectNode()
* @generated
*/
void setBase_ObjectNode(ObjectNode value);
} // Overwrite