/** * <copyright> Copyright (c) 2008-2009 Jonas Helming, Maximilian Koegel. All rights reserved. This program and the * accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html </copyright> */ package org.eclipse.emf.emfstore.client.test.model.classes.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.EObjectContainmentWithInverseEList; import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; import org.eclipse.emf.ecore.util.InternalEList; import org.eclipse.emf.emfstore.client.test.model.classes.Association; import org.eclipse.emf.emfstore.client.test.model.classes.Attribute; import org.eclipse.emf.emfstore.client.test.model.classes.ClassesPackage; import org.eclipse.emf.emfstore.client.test.model.classes.InstantiationType; import org.eclipse.emf.emfstore.client.test.model.classes.Method; import org.eclipse.emf.emfstore.client.test.model.requirement.RequirementPackage; import org.eclipse.emf.emfstore.client.test.model.requirement.Scenario; import org.eclipse.emf.emfstore.client.test.model.requirement.UseCase; /** * <!-- begin-user-doc --> An implementation of the model object '<em><b>Class</b></em>'. <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link org.eclipse.emf.emfstore.client.test.model.classes.impl.ClassImpl#getInstantiationType <em>Instantiation * Type</em>}</li> * <li>{@link org.eclipse.emf.emfstore.client.test.model.classes.impl.ClassImpl#getParticipatedUseCases <em>Participated * Use Cases</em>}</li> * <li>{@link org.eclipse.emf.emfstore.client.test.model.classes.impl.ClassImpl#getSuperClasses <em>Super Classes</em>}</li> * <li>{@link org.eclipse.emf.emfstore.client.test.model.classes.impl.ClassImpl#getSubClasses <em>Sub Classes</em>}</li> * <li>{@link org.eclipse.emf.emfstore.client.test.model.classes.impl.ClassImpl#getIncomingAssociations <em>Incoming * Associations</em>}</li> * <li>{@link org.eclipse.emf.emfstore.client.test.model.classes.impl.ClassImpl#getOutgoingAssociations <em>Outgoing * Associations</em>}</li> * <li>{@link org.eclipse.emf.emfstore.client.test.model.classes.impl.ClassImpl#getAttributes <em>Attributes</em>}</li> * <li>{@link org.eclipse.emf.emfstore.client.test.model.classes.impl.ClassImpl#getMethods <em>Methods</em>}</li> * <li>{@link org.eclipse.emf.emfstore.client.test.model.classes.impl.ClassImpl#getDemoParticipations <em>Demo * Participations</em>}</li> * </ul> * </p> * * @generated */ public class ClassImpl extends PackageElementImpl implements org.eclipse.emf.emfstore.client.test.model.classes.Class { /** * The default value of the '{@link #getInstantiationType() <em>Instantiation Type</em>}' attribute. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @see #getInstantiationType() * @generated * @ordered */ protected static final InstantiationType INSTANTIATION_TYPE_EDEFAULT = InstantiationType.CONCRETE; /** * The cached value of the '{@link #getInstantiationType() <em>Instantiation Type</em>}' attribute. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @see #getInstantiationType() * @generated * @ordered */ protected InstantiationType instantiationType = INSTANTIATION_TYPE_EDEFAULT; /** * The cached value of the '{@link #getParticipatedUseCases() <em>Participated Use Cases</em>}' reference list. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @see #getParticipatedUseCases() * @generated * @ordered */ protected EList<UseCase> participatedUseCases; /** * The cached value of the '{@link #getSuperClasses() <em>Super Classes</em>}' reference list. <!-- begin-user-doc * --> <!-- end-user-doc --> * * @see #getSuperClasses() * @generated * @ordered */ protected EList<org.eclipse.emf.emfstore.client.test.model.classes.Class> superClasses; /** * The cached value of the '{@link #getSubClasses() <em>Sub Classes</em>}' reference list. <!-- begin-user-doc --> * <!-- end-user-doc --> * * @see #getSubClasses() * @generated * @ordered */ protected EList<org.eclipse.emf.emfstore.client.test.model.classes.Class> subClasses; /** * The cached value of the '{@link #getIncomingAssociations() <em>Incoming Associations</em>}' reference list. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @see #getIncomingAssociations() * @generated * @ordered */ protected EList<Association> incomingAssociations; /** * The cached value of the '{@link #getOutgoingAssociations() <em>Outgoing Associations</em>}' reference list. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @see #getOutgoingAssociations() * @generated * @ordered */ protected EList<Association> outgoingAssociations; /** * The cached value of the '{@link #getAttributes() <em>Attributes</em>}' containment reference list. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @see #getAttributes() * @generated * @ordered */ protected EList<Attribute> attributes; /** * The cached value of the '{@link #getMethods() <em>Methods</em>}' containment reference list. <!-- begin-user-doc * --> <!-- end-user-doc --> * * @see #getMethods() * @generated * @ordered */ protected EList<Method> methods; /** * The cached value of the '{@link #getDemoParticipations() <em>Demo Participations</em>}' reference list. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @see #getDemoParticipations() * @generated * @ordered */ protected EList<Scenario> demoParticipations; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ protected ClassImpl() { super(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ @Override protected EClass eStaticClass() { return ClassesPackage.Literals.CLASS; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public InstantiationType getInstantiationType() { return instantiationType; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public void setInstantiationType(InstantiationType newInstantiationType) { InstantiationType oldInstantiationType = instantiationType; instantiationType = newInstantiationType == null ? INSTANTIATION_TYPE_EDEFAULT : newInstantiationType; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ClassesPackage.CLASS__INSTANTIATION_TYPE, oldInstantiationType, instantiationType)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public EList<UseCase> getParticipatedUseCases() { if (participatedUseCases == null) { participatedUseCases = new EObjectWithInverseResolvingEList.ManyInverse<UseCase>(UseCase.class, this, ClassesPackage.CLASS__PARTICIPATED_USE_CASES, RequirementPackage.USE_CASE__IDENTIFIED_CLASSES); } return participatedUseCases; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public EList<org.eclipse.emf.emfstore.client.test.model.classes.Class> getSuperClasses() { if (superClasses == null) { superClasses = new EObjectWithInverseResolvingEList.ManyInverse<org.eclipse.emf.emfstore.client.test.model.classes.Class>( org.eclipse.emf.emfstore.client.test.model.classes.Class.class, this, ClassesPackage.CLASS__SUPER_CLASSES, ClassesPackage.CLASS__SUB_CLASSES); } return superClasses; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public EList<org.eclipse.emf.emfstore.client.test.model.classes.Class> getSubClasses() { if (subClasses == null) { subClasses = new EObjectWithInverseResolvingEList.ManyInverse<org.eclipse.emf.emfstore.client.test.model.classes.Class>( org.eclipse.emf.emfstore.client.test.model.classes.Class.class, this, ClassesPackage.CLASS__SUB_CLASSES, ClassesPackage.CLASS__SUPER_CLASSES); } return subClasses; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public EList<Association> getIncomingAssociations() { if (incomingAssociations == null) { incomingAssociations = new EObjectWithInverseResolvingEList<Association>(Association.class, this, ClassesPackage.CLASS__INCOMING_ASSOCIATIONS, ClassesPackage.ASSOCIATION__TARGET); } return incomingAssociations; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public EList<Association> getOutgoingAssociations() { if (outgoingAssociations == null) { outgoingAssociations = new EObjectWithInverseResolvingEList<Association>(Association.class, this, ClassesPackage.CLASS__OUTGOING_ASSOCIATIONS, ClassesPackage.ASSOCIATION__SOURCE); } return outgoingAssociations; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public EList<Attribute> getAttributes() { if (attributes == null) { attributes = new EObjectContainmentWithInverseEList.Resolving<Attribute>(Attribute.class, this, ClassesPackage.CLASS__ATTRIBUTES, ClassesPackage.ATTRIBUTE__DEFINING_CLASS); } return attributes; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public EList<Method> getMethods() { if (methods == null) { methods = new EObjectContainmentWithInverseEList.Resolving<Method>(Method.class, this, ClassesPackage.CLASS__METHODS, ClassesPackage.METHOD__DEFINING_CLASS); } return methods; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ public EList<Scenario> getDemoParticipations() { if (demoParticipations == null) { demoParticipations = new EObjectWithInverseResolvingEList.ManyInverse<Scenario>(Scenario.class, this, ClassesPackage.CLASS__DEMO_PARTICIPATIONS, RequirementPackage.SCENARIO__PARTICIPATING_CLASSES); } return demoParticipations; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ @SuppressWarnings("unchecked") @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case ClassesPackage.CLASS__PARTICIPATED_USE_CASES: return ((InternalEList<InternalEObject>) (InternalEList<?>) getParticipatedUseCases()).basicAdd(otherEnd, msgs); case ClassesPackage.CLASS__SUPER_CLASSES: return ((InternalEList<InternalEObject>) (InternalEList<?>) getSuperClasses()).basicAdd(otherEnd, msgs); case ClassesPackage.CLASS__SUB_CLASSES: return ((InternalEList<InternalEObject>) (InternalEList<?>) getSubClasses()).basicAdd(otherEnd, msgs); case ClassesPackage.CLASS__INCOMING_ASSOCIATIONS: return ((InternalEList<InternalEObject>) (InternalEList<?>) getIncomingAssociations()).basicAdd(otherEnd, msgs); case ClassesPackage.CLASS__OUTGOING_ASSOCIATIONS: return ((InternalEList<InternalEObject>) (InternalEList<?>) getOutgoingAssociations()).basicAdd(otherEnd, msgs); case ClassesPackage.CLASS__ATTRIBUTES: return ((InternalEList<InternalEObject>) (InternalEList<?>) getAttributes()).basicAdd(otherEnd, msgs); case ClassesPackage.CLASS__METHODS: return ((InternalEList<InternalEObject>) (InternalEList<?>) getMethods()).basicAdd(otherEnd, msgs); case ClassesPackage.CLASS__DEMO_PARTICIPATIONS: return ((InternalEList<InternalEObject>) (InternalEList<?>) getDemoParticipations()).basicAdd(otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case ClassesPackage.CLASS__PARTICIPATED_USE_CASES: return ((InternalEList<?>) getParticipatedUseCases()).basicRemove(otherEnd, msgs); case ClassesPackage.CLASS__SUPER_CLASSES: return ((InternalEList<?>) getSuperClasses()).basicRemove(otherEnd, msgs); case ClassesPackage.CLASS__SUB_CLASSES: return ((InternalEList<?>) getSubClasses()).basicRemove(otherEnd, msgs); case ClassesPackage.CLASS__INCOMING_ASSOCIATIONS: return ((InternalEList<?>) getIncomingAssociations()).basicRemove(otherEnd, msgs); case ClassesPackage.CLASS__OUTGOING_ASSOCIATIONS: return ((InternalEList<?>) getOutgoingAssociations()).basicRemove(otherEnd, msgs); case ClassesPackage.CLASS__ATTRIBUTES: return ((InternalEList<?>) getAttributes()).basicRemove(otherEnd, msgs); case ClassesPackage.CLASS__METHODS: return ((InternalEList<?>) getMethods()).basicRemove(otherEnd, msgs); case ClassesPackage.CLASS__DEMO_PARTICIPATIONS: return ((InternalEList<?>) getDemoParticipations()).basicRemove(otherEnd, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case ClassesPackage.CLASS__INSTANTIATION_TYPE: return getInstantiationType(); case ClassesPackage.CLASS__PARTICIPATED_USE_CASES: return getParticipatedUseCases(); case ClassesPackage.CLASS__SUPER_CLASSES: return getSuperClasses(); case ClassesPackage.CLASS__SUB_CLASSES: return getSubClasses(); case ClassesPackage.CLASS__INCOMING_ASSOCIATIONS: return getIncomingAssociations(); case ClassesPackage.CLASS__OUTGOING_ASSOCIATIONS: return getOutgoingAssociations(); case ClassesPackage.CLASS__ATTRIBUTES: return getAttributes(); case ClassesPackage.CLASS__METHODS: return getMethods(); case ClassesPackage.CLASS__DEMO_PARTICIPATIONS: return getDemoParticipations(); } return super.eGet(featureID, resolve, coreType); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case ClassesPackage.CLASS__INSTANTIATION_TYPE: setInstantiationType((InstantiationType) newValue); return; case ClassesPackage.CLASS__PARTICIPATED_USE_CASES: getParticipatedUseCases().clear(); getParticipatedUseCases().addAll((Collection<? extends UseCase>) newValue); return; case ClassesPackage.CLASS__SUPER_CLASSES: getSuperClasses().clear(); getSuperClasses().addAll( (Collection<? extends org.eclipse.emf.emfstore.client.test.model.classes.Class>) newValue); return; case ClassesPackage.CLASS__SUB_CLASSES: getSubClasses().clear(); getSubClasses().addAll( (Collection<? extends org.eclipse.emf.emfstore.client.test.model.classes.Class>) newValue); return; case ClassesPackage.CLASS__INCOMING_ASSOCIATIONS: getIncomingAssociations().clear(); getIncomingAssociations().addAll((Collection<? extends Association>) newValue); return; case ClassesPackage.CLASS__OUTGOING_ASSOCIATIONS: getOutgoingAssociations().clear(); getOutgoingAssociations().addAll((Collection<? extends Association>) newValue); return; case ClassesPackage.CLASS__ATTRIBUTES: getAttributes().clear(); getAttributes().addAll((Collection<? extends Attribute>) newValue); return; case ClassesPackage.CLASS__METHODS: getMethods().clear(); getMethods().addAll((Collection<? extends Method>) newValue); return; case ClassesPackage.CLASS__DEMO_PARTICIPATIONS: getDemoParticipations().clear(); getDemoParticipations().addAll((Collection<? extends Scenario>) newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case ClassesPackage.CLASS__INSTANTIATION_TYPE: setInstantiationType(INSTANTIATION_TYPE_EDEFAULT); return; case ClassesPackage.CLASS__PARTICIPATED_USE_CASES: getParticipatedUseCases().clear(); return; case ClassesPackage.CLASS__SUPER_CLASSES: getSuperClasses().clear(); return; case ClassesPackage.CLASS__SUB_CLASSES: getSubClasses().clear(); return; case ClassesPackage.CLASS__INCOMING_ASSOCIATIONS: getIncomingAssociations().clear(); return; case ClassesPackage.CLASS__OUTGOING_ASSOCIATIONS: getOutgoingAssociations().clear(); return; case ClassesPackage.CLASS__ATTRIBUTES: getAttributes().clear(); return; case ClassesPackage.CLASS__METHODS: getMethods().clear(); return; case ClassesPackage.CLASS__DEMO_PARTICIPATIONS: getDemoParticipations().clear(); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case ClassesPackage.CLASS__INSTANTIATION_TYPE: return instantiationType != INSTANTIATION_TYPE_EDEFAULT; case ClassesPackage.CLASS__PARTICIPATED_USE_CASES: return participatedUseCases != null && !participatedUseCases.isEmpty(); case ClassesPackage.CLASS__SUPER_CLASSES: return superClasses != null && !superClasses.isEmpty(); case ClassesPackage.CLASS__SUB_CLASSES: return subClasses != null && !subClasses.isEmpty(); case ClassesPackage.CLASS__INCOMING_ASSOCIATIONS: return incomingAssociations != null && !incomingAssociations.isEmpty(); case ClassesPackage.CLASS__OUTGOING_ASSOCIATIONS: return outgoingAssociations != null && !outgoingAssociations.isEmpty(); case ClassesPackage.CLASS__ATTRIBUTES: return attributes != null && !attributes.isEmpty(); case ClassesPackage.CLASS__METHODS: return methods != null && !methods.isEmpty(); case ClassesPackage.CLASS__DEMO_PARTICIPATIONS: return demoParticipations != null && !demoParticipations.isEmpty(); } return super.eIsSet(featureID); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated */ @Override public String toString() { if (eIsProxy()) return super.toString(); StringBuffer result = new StringBuffer(super.toString()); result.append(" (instantiationType: "); result.append(instantiationType); result.append(')'); return result.toString(); } } // ClassImpl