org.omg.bpmn.bpmn2.impl.CallConversationImpl 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.InternalEList;
import org.omg.bpmn.bpmn2.Bpmn2Package;
import org.omg.bpmn.bpmn2.CallConversation;
import org.omg.bpmn.bpmn2.Collaboration;
import org.omg.bpmn.bpmn2.ParticipantAssociation;
/**
*
* An implementation of the model object 'Call Conversation'.
*
*
* The following features are implemented:
*
*
* - {@link org.omg.bpmn.bpmn2.impl.CallConversationImpl#getParticipantAssociations Participant Associations}
* - {@link org.omg.bpmn.bpmn2.impl.CallConversationImpl#getCalledCollaborationRef Called Collaboration Ref}
*
*
* @generated
*/
public class CallConversationImpl extends ConversationNodeImpl implements CallConversation {
/**
* The cached value of the '{@link #getParticipantAssociations() Participant Associations}' containment reference list.
*
*
* @see #getParticipantAssociations()
* @generated
* @ordered
*/
protected EList participantAssociations;
/**
* The cached value of the '{@link #getCalledCollaborationRef() Called Collaboration Ref}' reference.
*
*
* @see #getCalledCollaborationRef()
* @generated
* @ordered
*/
protected Collaboration calledCollaborationRef;
/**
*
*
* @generated
*/
protected CallConversationImpl() {
super();
}
/**
*
*
* @generated
*/
@Override
protected EClass eStaticClass() {
return Bpmn2Package.eINSTANCE.getCallConversation();
}
/**
*
*
* @generated
*/
@Override
public EList getParticipantAssociations() {
if (participantAssociations == null) {
participantAssociations = new EObjectContainmentEList(ParticipantAssociation.class, this, Bpmn2Package.CALL_CONVERSATION__PARTICIPANT_ASSOCIATIONS);
}
return participantAssociations;
}
/**
*
*
* @generated
*/
@Override
public Collaboration getCalledCollaborationRef() {
if (calledCollaborationRef != null && calledCollaborationRef.eIsProxy()) {
InternalEObject oldCalledCollaborationRef = (InternalEObject)calledCollaborationRef;
calledCollaborationRef = (Collaboration)eResolveProxy(oldCalledCollaborationRef);
if (calledCollaborationRef != oldCalledCollaborationRef) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, Bpmn2Package.CALL_CONVERSATION__CALLED_COLLABORATION_REF, oldCalledCollaborationRef, calledCollaborationRef));
}
}
return calledCollaborationRef;
}
/**
*
*
* @generated
*/
public Collaboration basicGetCalledCollaborationRef() {
return calledCollaborationRef;
}
/**
*
*
* @generated
*/
@Override
public void setCalledCollaborationRef(Collaboration newCalledCollaborationRef) {
Collaboration oldCalledCollaborationRef = calledCollaborationRef;
calledCollaborationRef = newCalledCollaborationRef;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, Bpmn2Package.CALL_CONVERSATION__CALLED_COLLABORATION_REF, oldCalledCollaborationRef, calledCollaborationRef));
}
/**
*
*
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case Bpmn2Package.CALL_CONVERSATION__PARTICIPANT_ASSOCIATIONS:
return ((InternalEList>)getParticipantAssociations()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
/**
*
*
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case Bpmn2Package.CALL_CONVERSATION__PARTICIPANT_ASSOCIATIONS:
return getParticipantAssociations();
case Bpmn2Package.CALL_CONVERSATION__CALLED_COLLABORATION_REF:
if (resolve) return getCalledCollaborationRef();
return basicGetCalledCollaborationRef();
}
return super.eGet(featureID, resolve, coreType);
}
/**
*
*
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case Bpmn2Package.CALL_CONVERSATION__PARTICIPANT_ASSOCIATIONS:
getParticipantAssociations().clear();
getParticipantAssociations().addAll((Collection extends ParticipantAssociation>)newValue);
return;
case Bpmn2Package.CALL_CONVERSATION__CALLED_COLLABORATION_REF:
setCalledCollaborationRef((Collaboration)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
*
*
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case Bpmn2Package.CALL_CONVERSATION__PARTICIPANT_ASSOCIATIONS:
getParticipantAssociations().clear();
return;
case Bpmn2Package.CALL_CONVERSATION__CALLED_COLLABORATION_REF:
setCalledCollaborationRef((Collaboration)null);
return;
}
super.eUnset(featureID);
}
/**
*
*
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case Bpmn2Package.CALL_CONVERSATION__PARTICIPANT_ASSOCIATIONS:
return participantAssociations != null && !participantAssociations.isEmpty();
case Bpmn2Package.CALL_CONVERSATION__CALLED_COLLABORATION_REF:
return calledCollaborationRef != null;
}
return super.eIsSet(featureID);
}
} //CallConversationImpl