/******************************************************************************* * Copyright (c) 2005, 2009 IBM Corporation and others. * 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 * * Contributors: * IBM Corporation - initial implementation *******************************************************************************/ package org.eclipse.epf.xml.uma.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.BasicFeatureMap; import org.eclipse.emf.ecore.util.EObjectContainmentEList; import org.eclipse.emf.ecore.util.FeatureMap; import org.eclipse.emf.ecore.util.InternalEList; import org.eclipse.epf.xml.uma.Section; import org.eclipse.epf.xml.uma.TaskDescriptor; import org.eclipse.epf.xml.uma.UmaPackage; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>Task Descriptor</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link org.eclipse.epf.xml.uma.impl.TaskDescriptorImpl#getTask <em>Task</em>}</li> * <li>{@link org.eclipse.epf.xml.uma.impl.TaskDescriptorImpl#getGroup3 <em>Group3</em>}</li> * <li>{@link org.eclipse.epf.xml.uma.impl.TaskDescriptorImpl#getPerformedPrimarilyBy <em>Performed Primarily By</em>}</li> * <li>{@link org.eclipse.epf.xml.uma.impl.TaskDescriptorImpl#getAdditionallyPerformedBy <em>Additionally Performed By</em>}</li> * <li>{@link org.eclipse.epf.xml.uma.impl.TaskDescriptorImpl#getAssistedBy <em>Assisted By</em>}</li> * <li>{@link org.eclipse.epf.xml.uma.impl.TaskDescriptorImpl#getExternalInput <em>External Input</em>}</li> * <li>{@link org.eclipse.epf.xml.uma.impl.TaskDescriptorImpl#getMandatoryInput <em>Mandatory Input</em>}</li> * <li>{@link org.eclipse.epf.xml.uma.impl.TaskDescriptorImpl#getOptionalInput <em>Optional Input</em>}</li> * <li>{@link org.eclipse.epf.xml.uma.impl.TaskDescriptorImpl#getOutput <em>Output</em>}</li> * <li>{@link org.eclipse.epf.xml.uma.impl.TaskDescriptorImpl#getStep <em>Step</em>}</li> * <li>{@link org.eclipse.epf.xml.uma.impl.TaskDescriptorImpl#isIsSynchronizedWithSource <em>Is Synchronized With Source</em>}</li> * </ul> * </p> * * @generated */ public class TaskDescriptorImpl extends WorkBreakdownElementImpl implements TaskDescriptor { /** * The default value of the '{@link #getTask() <em>Task</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getTask() * @generated * @ordered */ protected static final String TASK_EDEFAULT = null; /** * The cached value of the '{@link #getTask() <em>Task</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getTask() * @generated * @ordered */ protected String task = TASK_EDEFAULT; /** * The cached value of the '{@link #getGroup3() <em>Group3</em>}' attribute list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getGroup3() * @generated * @ordered */ protected FeatureMap group3; /** * The cached value of the '{@link #getStep() <em>Step</em>}' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getStep() * @generated * @ordered */ protected EList<Section> step; /** * The default value of the '{@link #isIsSynchronizedWithSource() <em>Is Synchronized With Source</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #isIsSynchronizedWithSource() * @generated * @ordered */ protected static final boolean IS_SYNCHRONIZED_WITH_SOURCE_EDEFAULT = false; /** * The cached value of the '{@link #isIsSynchronizedWithSource() <em>Is Synchronized With Source</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #isIsSynchronizedWithSource() * @generated * @ordered */ protected boolean isSynchronizedWithSource = IS_SYNCHRONIZED_WITH_SOURCE_EDEFAULT; /** * This is true if the Is Synchronized With Source attribute has been set. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ protected boolean isSynchronizedWithSourceESet; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected TaskDescriptorImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return UmaPackage.Literals.TASK_DESCRIPTOR; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public String getTask() { return task; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setTask(String newTask) { String oldTask = task; task = newTask; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, UmaPackage.TASK_DESCRIPTOR__TASK, oldTask, task)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<String> getPerformedPrimarilyBy() { return getGroup3().list(UmaPackage.Literals.TASK_DESCRIPTOR__PERFORMED_PRIMARILY_BY); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public FeatureMap getGroup3() { if (group3 == null) { group3 = new BasicFeatureMap(this, UmaPackage.TASK_DESCRIPTOR__GROUP3); } return group3; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<String> getAdditionallyPerformedBy() { return getGroup3().list(UmaPackage.Literals.TASK_DESCRIPTOR__ADDITIONALLY_PERFORMED_BY); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<String> getAssistedBy() { return getGroup3().list(UmaPackage.Literals.TASK_DESCRIPTOR__ASSISTED_BY); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<String> getExternalInput() { return getGroup3().list(UmaPackage.Literals.TASK_DESCRIPTOR__EXTERNAL_INPUT); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<String> getMandatoryInput() { return getGroup3().list(UmaPackage.Literals.TASK_DESCRIPTOR__MANDATORY_INPUT); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<String> getOptionalInput() { return getGroup3().list(UmaPackage.Literals.TASK_DESCRIPTOR__OPTIONAL_INPUT); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<String> getOutput() { return getGroup3().list(UmaPackage.Literals.TASK_DESCRIPTOR__OUTPUT); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<Section> getStep() { if (step == null) { step = new EObjectContainmentEList<Section>(Section.class, this, UmaPackage.TASK_DESCRIPTOR__STEP); } return step; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public boolean isIsSynchronizedWithSource() { return isSynchronizedWithSource; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setIsSynchronizedWithSource(boolean newIsSynchronizedWithSource) { boolean oldIsSynchronizedWithSource = isSynchronizedWithSource; isSynchronizedWithSource = newIsSynchronizedWithSource; boolean oldIsSynchronizedWithSourceESet = isSynchronizedWithSourceESet; isSynchronizedWithSourceESet = true; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, UmaPackage.TASK_DESCRIPTOR__IS_SYNCHRONIZED_WITH_SOURCE, oldIsSynchronizedWithSource, isSynchronizedWithSource, !oldIsSynchronizedWithSourceESet)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void unsetIsSynchronizedWithSource() { boolean oldIsSynchronizedWithSource = isSynchronizedWithSource; boolean oldIsSynchronizedWithSourceESet = isSynchronizedWithSourceESet; isSynchronizedWithSource = IS_SYNCHRONIZED_WITH_SOURCE_EDEFAULT; isSynchronizedWithSourceESet = false; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.UNSET, UmaPackage.TASK_DESCRIPTOR__IS_SYNCHRONIZED_WITH_SOURCE, oldIsSynchronizedWithSource, IS_SYNCHRONIZED_WITH_SOURCE_EDEFAULT, oldIsSynchronizedWithSourceESet)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public boolean isSetIsSynchronizedWithSource() { return isSynchronizedWithSourceESet; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case UmaPackage.TASK_DESCRIPTOR__GROUP3: return ((InternalEList<?>)getGroup3()).basicRemove(otherEnd, msgs); case UmaPackage.TASK_DESCRIPTOR__STEP: return ((InternalEList<?>)getStep()).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 UmaPackage.TASK_DESCRIPTOR__TASK: return getTask(); case UmaPackage.TASK_DESCRIPTOR__GROUP3: if (coreType) return getGroup3(); return ((FeatureMap.Internal)getGroup3()).getWrapper(); case UmaPackage.TASK_DESCRIPTOR__PERFORMED_PRIMARILY_BY: return getPerformedPrimarilyBy(); case UmaPackage.TASK_DESCRIPTOR__ADDITIONALLY_PERFORMED_BY: return getAdditionallyPerformedBy(); case UmaPackage.TASK_DESCRIPTOR__ASSISTED_BY: return getAssistedBy(); case UmaPackage.TASK_DESCRIPTOR__EXTERNAL_INPUT: return getExternalInput(); case UmaPackage.TASK_DESCRIPTOR__MANDATORY_INPUT: return getMandatoryInput(); case UmaPackage.TASK_DESCRIPTOR__OPTIONAL_INPUT: return getOptionalInput(); case UmaPackage.TASK_DESCRIPTOR__OUTPUT: return getOutput(); case UmaPackage.TASK_DESCRIPTOR__STEP: return getStep(); case UmaPackage.TASK_DESCRIPTOR__IS_SYNCHRONIZED_WITH_SOURCE: return isIsSynchronizedWithSource() ? Boolean.TRUE : Boolean.FALSE; } 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 UmaPackage.TASK_DESCRIPTOR__TASK: setTask((String)newValue); return; case UmaPackage.TASK_DESCRIPTOR__GROUP3: ((FeatureMap.Internal)getGroup3()).set(newValue); return; case UmaPackage.TASK_DESCRIPTOR__PERFORMED_PRIMARILY_BY: getPerformedPrimarilyBy().clear(); getPerformedPrimarilyBy().addAll((Collection<? extends String>)newValue); return; case UmaPackage.TASK_DESCRIPTOR__ADDITIONALLY_PERFORMED_BY: getAdditionallyPerformedBy().clear(); getAdditionallyPerformedBy().addAll((Collection<? extends String>)newValue); return; case UmaPackage.TASK_DESCRIPTOR__ASSISTED_BY: getAssistedBy().clear(); getAssistedBy().addAll((Collection<? extends String>)newValue); return; case UmaPackage.TASK_DESCRIPTOR__EXTERNAL_INPUT: getExternalInput().clear(); getExternalInput().addAll((Collection<? extends String>)newValue); return; case UmaPackage.TASK_DESCRIPTOR__MANDATORY_INPUT: getMandatoryInput().clear(); getMandatoryInput().addAll((Collection<? extends String>)newValue); return; case UmaPackage.TASK_DESCRIPTOR__OPTIONAL_INPUT: getOptionalInput().clear(); getOptionalInput().addAll((Collection<? extends String>)newValue); return; case UmaPackage.TASK_DESCRIPTOR__OUTPUT: getOutput().clear(); getOutput().addAll((Collection<? extends String>)newValue); return; case UmaPackage.TASK_DESCRIPTOR__STEP: getStep().clear(); getStep().addAll((Collection<? extends Section>)newValue); return; case UmaPackage.TASK_DESCRIPTOR__IS_SYNCHRONIZED_WITH_SOURCE: setIsSynchronizedWithSource(((Boolean)newValue).booleanValue()); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case UmaPackage.TASK_DESCRIPTOR__TASK: setTask(TASK_EDEFAULT); return; case UmaPackage.TASK_DESCRIPTOR__GROUP3: getGroup3().clear(); return; case UmaPackage.TASK_DESCRIPTOR__PERFORMED_PRIMARILY_BY: getPerformedPrimarilyBy().clear(); return; case UmaPackage.TASK_DESCRIPTOR__ADDITIONALLY_PERFORMED_BY: getAdditionallyPerformedBy().clear(); return; case UmaPackage.TASK_DESCRIPTOR__ASSISTED_BY: getAssistedBy().clear(); return; case UmaPackage.TASK_DESCRIPTOR__EXTERNAL_INPUT: getExternalInput().clear(); return; case UmaPackage.TASK_DESCRIPTOR__MANDATORY_INPUT: getMandatoryInput().clear(); return; case UmaPackage.TASK_DESCRIPTOR__OPTIONAL_INPUT: getOptionalInput().clear(); return; case UmaPackage.TASK_DESCRIPTOR__OUTPUT: getOutput().clear(); return; case UmaPackage.TASK_DESCRIPTOR__STEP: getStep().clear(); return; case UmaPackage.TASK_DESCRIPTOR__IS_SYNCHRONIZED_WITH_SOURCE: unsetIsSynchronizedWithSource(); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case UmaPackage.TASK_DESCRIPTOR__TASK: return TASK_EDEFAULT == null ? task != null : !TASK_EDEFAULT.equals(task); case UmaPackage.TASK_DESCRIPTOR__GROUP3: return group3 != null && !group3.isEmpty(); case UmaPackage.TASK_DESCRIPTOR__PERFORMED_PRIMARILY_BY: return !getPerformedPrimarilyBy().isEmpty(); case UmaPackage.TASK_DESCRIPTOR__ADDITIONALLY_PERFORMED_BY: return !getAdditionallyPerformedBy().isEmpty(); case UmaPackage.TASK_DESCRIPTOR__ASSISTED_BY: return !getAssistedBy().isEmpty(); case UmaPackage.TASK_DESCRIPTOR__EXTERNAL_INPUT: return !getExternalInput().isEmpty(); case UmaPackage.TASK_DESCRIPTOR__MANDATORY_INPUT: return !getMandatoryInput().isEmpty(); case UmaPackage.TASK_DESCRIPTOR__OPTIONAL_INPUT: return !getOptionalInput().isEmpty(); case UmaPackage.TASK_DESCRIPTOR__OUTPUT: return !getOutput().isEmpty(); case UmaPackage.TASK_DESCRIPTOR__STEP: return step != null && !step.isEmpty(); case UmaPackage.TASK_DESCRIPTOR__IS_SYNCHRONIZED_WITH_SOURCE: return isSetIsSynchronizedWithSource(); } 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(" (task: "); result.append(task); result.append(", group3: "); result.append(group3); result.append(", isSynchronizedWithSource: "); if (isSynchronizedWithSourceESet) result.append(isSynchronizedWithSource); else result.append("<unset>"); result.append(')'); return result.toString(); } } //TaskDescriptorImpl