org.omg.bpmn.bpmn2.impl.DataAssociationImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.omg.bpmn.model Show documentation
Show all versions of org.omg.bpmn.model Show documentation
Ecore and generated code for org.omg.bpmn2
The newest version!
/*
* Copyright (c) 2012 - 2024 Data In Motion 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 is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Mark Hoffmann - initial API and implementation
*/
package org.omg.bpmn.bpmn2.impl;
import java.util.Collection;
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.EObjectEList;
import org.eclipse.emf.ecore.util.InternalEList;
import org.omg.bpmn.bpmn2.Assignment;
import org.omg.bpmn.bpmn2.Bpmn2Package;
import org.omg.bpmn.bpmn2.DataAssociation;
import org.omg.bpmn.bpmn2.FormalExpression;
import org.omg.bpmn.bpmn2.ItemAwareElement;
/**
*
* An implementation of the model object 'Data Association'.
*
*
* The following features are implemented:
*
*
* - {@link org.omg.bpmn.bpmn2.impl.DataAssociationImpl#getSourceRef Source Ref}
* - {@link org.omg.bpmn.bpmn2.impl.DataAssociationImpl#getTargetRef Target Ref}
* - {@link org.omg.bpmn.bpmn2.impl.DataAssociationImpl#getTransformation Transformation}
* - {@link org.omg.bpmn.bpmn2.impl.DataAssociationImpl#getAssignment Assignment}
*
*
* @generated
*/
public class DataAssociationImpl extends BaseElementImpl implements DataAssociation {
/**
* The cached value of the '{@link #getSourceRef() Source Ref}' reference list.
*
*
* @see #getSourceRef()
* @generated
* @ordered
*/
protected EList sourceRef;
/**
* The cached value of the '{@link #getTargetRef() Target Ref}' reference.
*
*
* @see #getTargetRef()
* @generated
* @ordered
*/
protected ItemAwareElement targetRef;
/**
* The cached value of the '{@link #getTransformation() Transformation}' containment reference.
*
*
* @see #getTransformation()
* @generated
* @ordered
*/
protected FormalExpression transformation;
/**
* The cached value of the '{@link #getAssignment() Assignment}' containment reference list.
*
*
* @see #getAssignment()
* @generated
* @ordered
*/
protected EList assignment;
/**
*
*
* @generated
*/
protected DataAssociationImpl() {
super();
}
/**
*
*
* @generated
*/
@Override
protected EClass eStaticClass() {
return Bpmn2Package.eINSTANCE.getDataAssociation();
}
/**
*
*
* @generated
*/
@Override
public EList getSourceRef() {
if (sourceRef == null) {
sourceRef = new EObjectEList(ItemAwareElement.class, this, Bpmn2Package.DATA_ASSOCIATION__SOURCE_REF);
}
return sourceRef;
}
/**
*
*
* @generated
*/
@Override
public ItemAwareElement getTargetRef() {
return targetRef;
}
/**
*
*
* @generated
*/
@Override
public void setTargetRef(ItemAwareElement newTargetRef) {
ItemAwareElement oldTargetRef = targetRef;
targetRef = newTargetRef;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, Bpmn2Package.DATA_ASSOCIATION__TARGET_REF, oldTargetRef, targetRef));
}
/**
*
*
* @generated
*/
@Override
public FormalExpression getTransformation() {
return transformation;
}
/**
*
*
* @generated
*/
public NotificationChain basicSetTransformation(FormalExpression newTransformation, NotificationChain msgs) {
FormalExpression oldTransformation = transformation;
transformation = newTransformation;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Bpmn2Package.DATA_ASSOCIATION__TRANSFORMATION, oldTransformation, newTransformation);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
}
/**
*
*
* @generated
*/
@Override
public void setTransformation(FormalExpression newTransformation) {
if (newTransformation != transformation) {
NotificationChain msgs = null;
if (transformation != null)
msgs = ((InternalEObject)transformation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - Bpmn2Package.DATA_ASSOCIATION__TRANSFORMATION, null, msgs);
if (newTransformation != null)
msgs = ((InternalEObject)newTransformation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - Bpmn2Package.DATA_ASSOCIATION__TRANSFORMATION, null, msgs);
msgs = basicSetTransformation(newTransformation, msgs);
if (msgs != null) msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, Bpmn2Package.DATA_ASSOCIATION__TRANSFORMATION, newTransformation, newTransformation));
}
/**
*
*
* @generated
*/
@Override
public EList getAssignment() {
if (assignment == null) {
assignment = new EObjectContainmentEList(Assignment.class, this, Bpmn2Package.DATA_ASSOCIATION__ASSIGNMENT);
}
return assignment;
}
/**
*
*
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case Bpmn2Package.DATA_ASSOCIATION__TRANSFORMATION:
return basicSetTransformation(null, msgs);
case Bpmn2Package.DATA_ASSOCIATION__ASSIGNMENT:
return ((InternalEList>)getAssignment()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
/**
*
*
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case Bpmn2Package.DATA_ASSOCIATION__SOURCE_REF:
return getSourceRef();
case Bpmn2Package.DATA_ASSOCIATION__TARGET_REF:
return getTargetRef();
case Bpmn2Package.DATA_ASSOCIATION__TRANSFORMATION:
return getTransformation();
case Bpmn2Package.DATA_ASSOCIATION__ASSIGNMENT:
return getAssignment();
}
return super.eGet(featureID, resolve, coreType);
}
/**
*
*
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case Bpmn2Package.DATA_ASSOCIATION__SOURCE_REF:
getSourceRef().clear();
getSourceRef().addAll((Collection extends ItemAwareElement>)newValue);
return;
case Bpmn2Package.DATA_ASSOCIATION__TARGET_REF:
setTargetRef((ItemAwareElement)newValue);
return;
case Bpmn2Package.DATA_ASSOCIATION__TRANSFORMATION:
setTransformation((FormalExpression)newValue);
return;
case Bpmn2Package.DATA_ASSOCIATION__ASSIGNMENT:
getAssignment().clear();
getAssignment().addAll((Collection extends Assignment>)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
*
*
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case Bpmn2Package.DATA_ASSOCIATION__SOURCE_REF:
getSourceRef().clear();
return;
case Bpmn2Package.DATA_ASSOCIATION__TARGET_REF:
setTargetRef((ItemAwareElement)null);
return;
case Bpmn2Package.DATA_ASSOCIATION__TRANSFORMATION:
setTransformation((FormalExpression)null);
return;
case Bpmn2Package.DATA_ASSOCIATION__ASSIGNMENT:
getAssignment().clear();
return;
}
super.eUnset(featureID);
}
/**
*
*
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case Bpmn2Package.DATA_ASSOCIATION__SOURCE_REF:
return sourceRef != null && !sourceRef.isEmpty();
case Bpmn2Package.DATA_ASSOCIATION__TARGET_REF:
return targetRef != null;
case Bpmn2Package.DATA_ASSOCIATION__TRANSFORMATION:
return transformation != null;
case Bpmn2Package.DATA_ASSOCIATION__ASSIGNMENT:
return assignment != null && !assignment.isEmpty();
}
return super.eIsSet(featureID);
}
} //DataAssociationImpl