/**
* <copyright>
* </copyright>
*
* $Id$
*/
package net.sf.orcc.df.impl;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.orcc.df.Action;
import net.sf.orcc.df.Actor;
import net.sf.orcc.df.Connection;
import net.sf.orcc.df.DfPackage;
import net.sf.orcc.df.DfPackage.Literals;
import net.sf.orcc.df.Entity;
import net.sf.orcc.df.FSM;
import net.sf.orcc.df.Port;
import net.sf.orcc.df.util.DfUtil;
import net.sf.orcc.graph.impl.VertexImpl;
import net.sf.orcc.ir.Procedure;
import net.sf.orcc.ir.Var;
import net.sf.orcc.ir.util.MapAdapter;
import net.sf.orcc.moc.MoC;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Path;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import org.eclipse.emf.ecore.util.InternalEList;
/**
* <!-- begin-user-doc --> An implementation of the model object '
* <em><b>Actor</b></em>'. <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getActions <em>Actions</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getActionsOutsideFsm <em>Actions Outside Fsm</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getFileName <em>File Name</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getFsm <em>Fsm</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getInitializes <em>Initializes</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getInputs <em>Inputs</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getLineNumber <em>Line Number</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getMoC <em>Mo C</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#isNative <em>Native</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getName <em>Name</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getOutputs <em>Outputs</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getParameters <em>Parameters</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getProcs <em>Procs</em>}</li>
* <li>{@link net.sf.orcc.df.impl.ActorImpl#getStateVars <em>State Vars</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class ActorImpl extends VertexImpl implements Actor {
/**
* The cached value of the '{@link #getActions() <em>Actions</em>}' containment reference list.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getActions()
* @generated
* @ordered
*/
protected EList<Action> actions;
/**
* The cached value of the '{@link #getActionsOutsideFsm() <em>Actions Outside Fsm</em>}' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getActionsOutsideFsm()
* @generated
* @ordered
*/
protected EList<Action> actionsOutsideFsm;
/**
* The default value of the '{@link #getFileName() <em>File Name</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getFileName()
* @generated
* @ordered
*/
protected static final String FILE_NAME_EDEFAULT = null;
private Entity cachedAdaptedEntity;
/**
* The cached value of the '{@link #getFileName() <em>File Name</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getFileName()
* @generated
* @ordered
*/
protected String fileName = FILE_NAME_EDEFAULT;
/**
* The cached value of the '{@link #getFsm() <em>Fsm</em>}' containment reference.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getFsm()
* @generated
* @ordered
*/
protected FSM fsm;
/**
* The cached value of the '{@link #getInitializes() <em>Initializes</em>}' containment reference list.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getInitializes()
* @generated
* @ordered
*/
protected EList<Action> initializes;
/**
* The cached value of the '{@link #getInputs() <em>Inputs</em>}' containment reference list.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getInputs()
* @generated
* @ordered
*/
protected EList<Port> inputs;
/**
* The default value of the '{@link #getLineNumber() <em>Line Number</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getLineNumber()
* @generated
* @ordered
*/
protected static final int LINE_NUMBER_EDEFAULT = 0;
/**
* The cached value of the '{@link #getLineNumber() <em>Line Number</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getLineNumber()
* @generated
* @ordered
*/
protected int lineNumber = LINE_NUMBER_EDEFAULT;
private Map<String, Var> mapVars;
/**
* The cached value of the '{@link #getMoC() <em>Mo C</em>}' containment reference.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getMoC()
* @generated
* @ordered
*/
protected MoC moC;
/**
* The default value of the '{@link #isNative() <em>Native</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #isNative()
* @generated
* @ordered
*/
protected static final boolean NATIVE_EDEFAULT = false;
/**
* The cached value of the '{@link #isNative() <em>Native</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #isNative()
* @generated
* @ordered
*/
protected boolean native_ = NATIVE_EDEFAULT;
/**
* The default value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getName()
* @generated
* @ordered
*/
protected static final String NAME_EDEFAULT = "";
/**
* The cached value of the '{@link #getOutputs() <em>Outputs</em>}' containment reference list.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getOutputs()
* @generated
* @ordered
*/
protected EList<Port> outputs;
/**
* The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getParameters()
* @generated
* @ordered
*/
protected EList<Var> parameters;
/**
* The cached value of the '{@link #getProcs() <em>Procs</em>}' containment reference list.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getProcs()
* @generated
* @ordered
*/
protected EList<Procedure> procs;
/**
* The cached value of the '{@link #getStateVars() <em>State Vars</em>}' containment reference list.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @see #getStateVars()
* @generated
* @ordered
*/
protected EList<Var> stateVars;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*/
protected ActorImpl() {
super();
mapVars = new HashMap<String, Var>();
eAdapters().add(new MapAdapter(mapVars, Literals.ACTOR__STATE_VARS));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetFsm(FSM newFsm, NotificationChain msgs) {
FSM oldFsm = fsm;
fsm = newFsm;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this,
Notification.SET, DfPackage.ACTOR__FSM, oldFsm, newFsm);
if (msgs == null)
msgs = notification;
else
msgs.add(notification);
}
return msgs;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetMoC(MoC newMoC, NotificationChain msgs) {
MoC oldMoC = moC;
moC = newMoC;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this,
Notification.SET, DfPackage.ACTOR__MO_C, oldMoC, newMoC);
if (msgs == null)
msgs = notification;
else
msgs.add(notification);
}
return msgs;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case DfPackage.ACTOR__ACTIONS:
return getActions();
case DfPackage.ACTOR__ACTIONS_OUTSIDE_FSM:
return getActionsOutsideFsm();
case DfPackage.ACTOR__FILE_NAME:
return getFileName();
case DfPackage.ACTOR__FSM:
return getFsm();
case DfPackage.ACTOR__INITIALIZES:
return getInitializes();
case DfPackage.ACTOR__INPUTS:
return getInputs();
case DfPackage.ACTOR__LINE_NUMBER:
return getLineNumber();
case DfPackage.ACTOR__MO_C:
return getMoC();
case DfPackage.ACTOR__NATIVE:
return isNative();
case DfPackage.ACTOR__NAME:
return getName();
case DfPackage.ACTOR__OUTPUTS:
return getOutputs();
case DfPackage.ACTOR__PARAMETERS:
return getParameters();
case DfPackage.ACTOR__PROCS:
return getProcs();
case DfPackage.ACTOR__STATE_VARS:
return getStateVars();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd,
int featureID, NotificationChain msgs) {
switch (featureID) {
case DfPackage.ACTOR__ACTIONS:
return ((InternalEList<?>) getActions())
.basicRemove(otherEnd, msgs);
case DfPackage.ACTOR__FSM:
return basicSetFsm(null, msgs);
case DfPackage.ACTOR__INITIALIZES:
return ((InternalEList<?>) getInitializes()).basicRemove(otherEnd,
msgs);
case DfPackage.ACTOR__INPUTS:
return ((InternalEList<?>) getInputs()).basicRemove(otherEnd, msgs);
case DfPackage.ACTOR__MO_C:
return basicSetMoC(null, msgs);
case DfPackage.ACTOR__OUTPUTS:
return ((InternalEList<?>) getOutputs())
.basicRemove(otherEnd, msgs);
case DfPackage.ACTOR__PARAMETERS:
return ((InternalEList<?>) getParameters()).basicRemove(otherEnd,
msgs);
case DfPackage.ACTOR__PROCS:
return ((InternalEList<?>) getProcs()).basicRemove(otherEnd, msgs);
case DfPackage.ACTOR__STATE_VARS:
return ((InternalEList<?>) getStateVars()).basicRemove(otherEnd,
msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case DfPackage.ACTOR__ACTIONS:
return actions != null && !actions.isEmpty();
case DfPackage.ACTOR__ACTIONS_OUTSIDE_FSM:
return actionsOutsideFsm != null && !actionsOutsideFsm.isEmpty();
case DfPackage.ACTOR__FILE_NAME:
return FILE_NAME_EDEFAULT == null ? fileName != null
: !FILE_NAME_EDEFAULT.equals(fileName);
case DfPackage.ACTOR__FSM:
return fsm != null;
case DfPackage.ACTOR__INITIALIZES:
return initializes != null && !initializes.isEmpty();
case DfPackage.ACTOR__INPUTS:
return inputs != null && !inputs.isEmpty();
case DfPackage.ACTOR__LINE_NUMBER:
return lineNumber != LINE_NUMBER_EDEFAULT;
case DfPackage.ACTOR__MO_C:
return moC != null;
case DfPackage.ACTOR__NATIVE:
return native_ != NATIVE_EDEFAULT;
case DfPackage.ACTOR__NAME:
return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT
.equals(getName());
case DfPackage.ACTOR__OUTPUTS:
return outputs != null && !outputs.isEmpty();
case DfPackage.ACTOR__PARAMETERS:
return parameters != null && !parameters.isEmpty();
case DfPackage.ACTOR__PROCS:
return procs != null && !procs.isEmpty();
case DfPackage.ACTOR__STATE_VARS:
return stateVars != null && !stateVars.isEmpty();
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case DfPackage.ACTOR__ACTIONS:
getActions().clear();
getActions().addAll((Collection<? extends Action>) newValue);
return;
case DfPackage.ACTOR__ACTIONS_OUTSIDE_FSM:
getActionsOutsideFsm().clear();
getActionsOutsideFsm().addAll(
(Collection<? extends Action>) newValue);
return;
case DfPackage.ACTOR__FILE_NAME:
setFileName((String) newValue);
return;
case DfPackage.ACTOR__FSM:
setFsm((FSM) newValue);
return;
case DfPackage.ACTOR__INITIALIZES:
getInitializes().clear();
getInitializes().addAll((Collection<? extends Action>) newValue);
return;
case DfPackage.ACTOR__INPUTS:
getInputs().clear();
getInputs().addAll((Collection<? extends Port>) newValue);
return;
case DfPackage.ACTOR__LINE_NUMBER:
setLineNumber((Integer) newValue);
return;
case DfPackage.ACTOR__MO_C:
setMoC((MoC) newValue);
return;
case DfPackage.ACTOR__NATIVE:
setNative((Boolean) newValue);
return;
case DfPackage.ACTOR__NAME:
setName((String) newValue);
return;
case DfPackage.ACTOR__OUTPUTS:
getOutputs().clear();
getOutputs().addAll((Collection<? extends Port>) newValue);
return;
case DfPackage.ACTOR__PARAMETERS:
getParameters().clear();
getParameters().addAll((Collection<? extends Var>) newValue);
return;
case DfPackage.ACTOR__PROCS:
getProcs().clear();
getProcs().addAll((Collection<? extends Procedure>) newValue);
return;
case DfPackage.ACTOR__STATE_VARS:
getStateVars().clear();
getStateVars().addAll((Collection<? extends Var>) newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return DfPackage.Literals.ACTOR;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case DfPackage.ACTOR__ACTIONS:
getActions().clear();
return;
case DfPackage.ACTOR__ACTIONS_OUTSIDE_FSM:
getActionsOutsideFsm().clear();
return;
case DfPackage.ACTOR__FILE_NAME:
setFileName(FILE_NAME_EDEFAULT);
return;
case DfPackage.ACTOR__FSM:
setFsm((FSM) null);
return;
case DfPackage.ACTOR__INITIALIZES:
getInitializes().clear();
return;
case DfPackage.ACTOR__INPUTS:
getInputs().clear();
return;
case DfPackage.ACTOR__LINE_NUMBER:
setLineNumber(LINE_NUMBER_EDEFAULT);
return;
case DfPackage.ACTOR__MO_C:
setMoC((MoC) null);
return;
case DfPackage.ACTOR__NATIVE:
setNative(NATIVE_EDEFAULT);
return;
case DfPackage.ACTOR__NAME:
setName(NAME_EDEFAULT);
return;
case DfPackage.ACTOR__OUTPUTS:
getOutputs().clear();
return;
case DfPackage.ACTOR__PARAMETERS:
getParameters().clear();
return;
case DfPackage.ACTOR__PROCS:
getProcs().clear();
return;
case DfPackage.ACTOR__STATE_VARS:
getStateVars().clear();
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EList<Action> getActions() {
if (actions == null) {
actions = new EObjectContainmentEList<Action>(Action.class, this,
DfPackage.ACTOR__ACTIONS);
}
return actions;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EList<Action> getActionsOutsideFsm() {
if (actionsOutsideFsm == null) {
actionsOutsideFsm = new EObjectResolvingEList<Action>(Action.class,
this, DfPackage.ACTOR__ACTIONS_OUTSIDE_FSM);
}
return actionsOutsideFsm;
}
@Override
@SuppressWarnings("unchecked")
public <T> T getAdapter(Class<T> type) {
if (type == Entity.class) {
if (cachedAdaptedEntity == null) {
cachedAdaptedEntity = new EntityImpl(this, getAttributes(),
getInputs(), getOutputs(), getParameters());
}
return (T) cachedAdaptedEntity;
}
return super.getAdapter(type);
}
@Override
public IFile getFile() {
String fileName = getFileName();
if (fileName == null) {
return null;
}
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
return root.getFile(new Path(fileName));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public String getFileName() {
return fileName;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public FSM getFsm() {
return fsm;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EList<Action> getInitializes() {
if (initializes == null) {
initializes = new EObjectContainmentEList<Action>(Action.class,
this, DfPackage.ACTOR__INITIALIZES);
}
return initializes;
}
@Override
public Port getInput(String name) {
for (Port port : getInputs()) {
if (port.getName().equals(name)) {
return port;
}
}
return null;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EList<Port> getInputs() {
if (inputs == null) {
inputs = new EObjectContainmentEList<Port>(Port.class, this,
DfPackage.ACTOR__INPUTS);
}
return inputs;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public int getLineNumber() {
return lineNumber;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public MoC getMoC() {
return moC;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*/
public String getName() {
return getLabel();
}
@Override
public Port getOutput(String name) {
for (Port port : getOutputs()) {
if (port.getName().equals(name)) {
return port;
}
}
return null;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EList<Port> getOutputs() {
if (outputs == null) {
outputs = new EObjectContainmentEList<Port>(Port.class, this,
DfPackage.ACTOR__OUTPUTS);
}
return outputs;
}
@Override
public String getPackage() {
return DfUtil.getPackage(getName());
}
@Override
public Var getParameter(String name) {
for (Var var : getParameters()) {
if (var.getName().equals(name)) {
return var;
}
}
return null;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
public EList<Var> getParameters() {
if (parameters == null) {
parameters = new EObjectContainmentEList<Var>(Var.class, this,
DfPackage.ACTOR__PARAMETERS);
}
return parameters;
}
@Override
public Port getPort(String name) {
Port port = getInput(name);
if (port != null) {
return port;
}
return getOutput(name);
}
@Override
public Procedure getProcedure(String name) {
for (Procedure procedure : getProcs()) {
if (procedure.getName().equals(name)) {
return procedure;
}
}
return null;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EList<Procedure> getProcs() {
if (procs == null) {
procs = new EObjectContainmentEList<Procedure>(Procedure.class,
this, DfPackage.ACTOR__PROCS);
}
return procs;
}
@Override
public String getSimpleName() {
return DfUtil.getSimpleName(getName());
}
@Override
public Var getStateVar(String name) {
return mapVars.get(name);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public EList<Var> getStateVars() {
if (stateVars == null) {
stateVars = new EObjectContainmentEList<Var>(Var.class, this,
DfPackage.ACTOR__STATE_VARS);
}
return stateVars;
}
/**
* Add the given variable to {@link #actor}'s state variables and make its name
* unique.
*
* @param variable
* the variable to add
*/
@Override
public void addStateVar(Var variable) {
String name = variable.getName();
Var existing = getStateVar(name);
int i = 0;
while (existing != null) {
name = variable.getName() + i;
existing = getStateVar(name);
i++;
}
variable.setName(name);
getStateVars().add(variable);
}
@Override
public boolean hasFsm() {
return fsm != null;
}
@Override
public boolean hasMoC() {
return moC != null;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public boolean isNative() {
return native_;
}
@Override
public void resetTokenConsumption() {
for (Port port : getInputs()) {
port.resetTokenConsumption();
}
}
@Override
public void resetTokenProduction() {
for (Port port : getOutputs()) {
port.resetTokenProduction();
}
}
@Override
public Map<Port, Connection> getIncomingPortMap() {
return getAdapter(Entity.class).getIncomingPortMap();
}
@Override
public Map<Port, List<Connection>> getOutgoingPortMap() {
return getAdapter(Entity.class).getOutgoingPortMap();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public void setFileName(String newFileName) {
String oldFileName = fileName;
fileName = newFileName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET,
DfPackage.ACTOR__FILE_NAME, oldFileName, fileName));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public void setFsm(FSM newFsm) {
if (newFsm != fsm) {
NotificationChain msgs = null;
if (fsm != null)
msgs = ((InternalEObject) fsm).eInverseRemove(this,
EOPPOSITE_FEATURE_BASE - DfPackage.ACTOR__FSM, null,
msgs);
if (newFsm != null)
msgs = ((InternalEObject) newFsm).eInverseAdd(this,
EOPPOSITE_FEATURE_BASE - DfPackage.ACTOR__FSM, null,
msgs);
msgs = basicSetFsm(newFsm, msgs);
if (msgs != null)
msgs.dispatch();
} else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET,
DfPackage.ACTOR__FSM, newFsm, newFsm));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public void setLineNumber(int newLineNumber) {
int oldLineNumber = lineNumber;
lineNumber = newLineNumber;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET,
DfPackage.ACTOR__LINE_NUMBER, oldLineNumber, lineNumber));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public void setMoC(MoC newMoC) {
if (newMoC != moC) {
NotificationChain msgs = null;
if (moC != null)
msgs = ((InternalEObject) moC).eInverseRemove(this,
EOPPOSITE_FEATURE_BASE - DfPackage.ACTOR__MO_C, null,
msgs);
if (newMoC != null)
msgs = ((InternalEObject) newMoC).eInverseAdd(this,
EOPPOSITE_FEATURE_BASE - DfPackage.ACTOR__MO_C, null,
msgs);
msgs = basicSetMoC(newMoC, msgs);
if (msgs != null)
msgs.dispatch();
} else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET,
DfPackage.ACTOR__MO_C, newMoC, newMoC));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*/
public void setName(String newName) {
setLabel(newName);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public void setNative(boolean newNative) {
boolean oldNative = native_;
native_ = newNative;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET,
DfPackage.ACTOR__NATIVE, oldNative, native_));
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
@Override
public String toString() {
if (eIsProxy())
return super.toString();
StringBuffer result = new StringBuffer(super.toString());
result.append(" (fileName: ");
result.append(fileName);
result.append(", lineNumber: ");
result.append(lineNumber);
result.append(", native: ");
result.append(native_);
result.append(')');
return result.toString();
}
} // ActorImpl