/** * ***************************************************************************** * Copyright (c) 2014 BestSolution.at 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: * Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation * ******************************************************************************* */ package at.bestsolution.persistence.tasktracker.impl; import at.bestsolution.persistence.tasktracker.ChangeSet; import at.bestsolution.persistence.tasktracker.Comment; import at.bestsolution.persistence.tasktracker.Person; import at.bestsolution.persistence.tasktracker.Task; import at.bestsolution.persistence.tasktracker.TaskAttachment; import at.bestsolution.persistence.tasktracker.TaskRepository; import at.bestsolution.persistence.tasktracker.TaskState; import at.bestsolution.persistence.tasktracker.TasktrackerPackage; import at.bestsolution.persistence.tasktracker.Version; 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.InternalEList; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>Task</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link at.bestsolution.persistence.tasktracker.impl.TaskImpl#getRepository <em>Repository</em>}</li> * <li>{@link at.bestsolution.persistence.tasktracker.impl.TaskImpl#getTitle <em>Title</em>}</li> * <li>{@link at.bestsolution.persistence.tasktracker.impl.TaskImpl#getDescription <em>Description</em>}</li> * <li>{@link at.bestsolution.persistence.tasktracker.impl.TaskImpl#getCommentList <em>Comment List</em>}</li> * <li>{@link at.bestsolution.persistence.tasktracker.impl.TaskImpl#getChangeSetList <em>Change Set List</em>}</li> * <li>{@link at.bestsolution.persistence.tasktracker.impl.TaskImpl#getReporter <em>Reporter</em>}</li> * <li>{@link at.bestsolution.persistence.tasktracker.impl.TaskImpl#getAssignee <em>Assignee</em>}</li> * <li>{@link at.bestsolution.persistence.tasktracker.impl.TaskImpl#getState <em>State</em>}</li> * <li>{@link at.bestsolution.persistence.tasktracker.impl.TaskImpl#getTargetVersion <em>Target Version</em>}</li> * <li>{@link at.bestsolution.persistence.tasktracker.impl.TaskImpl#getProductVersion <em>Product Version</em>}</li> * <li>{@link at.bestsolution.persistence.tasktracker.impl.TaskImpl#getAttachmentList <em>Attachment List</em>}</li> * </ul> * </p> * * @generated */ public class TaskImpl extends BaseObjectImpl implements Task { /** * The cached value of the '{@link #getRepository() <em>Repository</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getRepository() * @generated * @ordered */ protected TaskRepository repository; /** * The default value of the '{@link #getTitle() <em>Title</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getTitle() * @generated * @ordered */ protected static final String TITLE_EDEFAULT = null; /** * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getTitle() * @generated * @ordered */ protected String title = TITLE_EDEFAULT; /** * The default value of the '{@link #getDescription() <em>Description</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getDescription() * @generated * @ordered */ protected static final String DESCRIPTION_EDEFAULT = null; /** * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getDescription() * @generated * @ordered */ protected String description = DESCRIPTION_EDEFAULT; /** * The cached value of the '{@link #getCommentList() <em>Comment List</em>}' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getCommentList() * @generated * @ordered */ protected EList<Comment> commentList; /** * The cached value of the '{@link #getChangeSetList() <em>Change Set List</em>}' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getChangeSetList() * @generated * @ordered */ protected EList<ChangeSet> changeSetList; /** * The cached value of the '{@link #getReporter() <em>Reporter</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getReporter() * @generated * @ordered */ protected Person reporter; /** * The cached value of the '{@link #getAssignee() <em>Assignee</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getAssignee() * @generated * @ordered */ protected Person assignee; /** * The default value of the '{@link #getState() <em>State</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getState() * @generated * @ordered */ protected static final TaskState STATE_EDEFAULT = TaskState.NEW; /** * The cached value of the '{@link #getState() <em>State</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getState() * @generated * @ordered */ protected TaskState state = STATE_EDEFAULT; /** * The cached value of the '{@link #getTargetVersion() <em>Target Version</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getTargetVersion() * @generated * @ordered */ protected Version targetVersion; /** * The cached value of the '{@link #getProductVersion() <em>Product Version</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getProductVersion() * @generated * @ordered */ protected Version productVersion; /** * The cached value of the '{@link #getAttachmentList() <em>Attachment List</em>}' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getAttachmentList() * @generated * @ordered */ protected EList<TaskAttachment> attachmentList; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected TaskImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return TasktrackerPackage.Literals.TASK; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public TaskRepository getRepository() { if (repository != null && repository.eIsProxy()) { InternalEObject oldRepository = (InternalEObject)repository; repository = (TaskRepository)eResolveProxy(oldRepository); if (repository != oldRepository) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, TasktrackerPackage.TASK__REPOSITORY, oldRepository, repository)); } } return repository; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public TaskRepository basicGetRepository() { return repository; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NotificationChain basicSetRepository(TaskRepository newRepository, NotificationChain msgs) { TaskRepository oldRepository = repository; repository = newRepository; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TasktrackerPackage.TASK__REPOSITORY, oldRepository, newRepository); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setRepository(TaskRepository newRepository) { if (newRepository != repository) { NotificationChain msgs = null; if (repository != null) msgs = ((InternalEObject)repository).eInverseRemove(this, TasktrackerPackage.TASK_REPOSITORY__TASK_LIST, TaskRepository.class, msgs); if (newRepository != null) msgs = ((InternalEObject)newRepository).eInverseAdd(this, TasktrackerPackage.TASK_REPOSITORY__TASK_LIST, TaskRepository.class, msgs); msgs = basicSetRepository(newRepository, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TasktrackerPackage.TASK__REPOSITORY, newRepository, newRepository)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public String getTitle() { return title; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setTitle(String newTitle) { String oldTitle = title; title = newTitle; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TasktrackerPackage.TASK__TITLE, oldTitle, title)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public String getDescription() { return description; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setDescription(String newDescription) { String oldDescription = description; description = newDescription; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TasktrackerPackage.TASK__DESCRIPTION, oldDescription, description)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<Comment> getCommentList() { if (commentList == null) { commentList = new EObjectContainmentWithInverseEList<Comment>(Comment.class, this, TasktrackerPackage.TASK__COMMENT_LIST, TasktrackerPackage.COMMENT__TASK); } return commentList; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<ChangeSet> getChangeSetList() { if (changeSetList == null) { changeSetList = new EObjectContainmentWithInverseEList<ChangeSet>(ChangeSet.class, this, TasktrackerPackage.TASK__CHANGE_SET_LIST, TasktrackerPackage.CHANGE_SET__TASK); } return changeSetList; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Person getReporter() { if (reporter != null && reporter.eIsProxy()) { InternalEObject oldReporter = (InternalEObject)reporter; reporter = (Person)eResolveProxy(oldReporter); if (reporter != oldReporter) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, TasktrackerPackage.TASK__REPORTER, oldReporter, reporter)); } } return reporter; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Person basicGetReporter() { return reporter; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setReporter(Person newReporter) { Person oldReporter = reporter; reporter = newReporter; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TasktrackerPackage.TASK__REPORTER, oldReporter, reporter)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Person getAssignee() { if (assignee != null && assignee.eIsProxy()) { InternalEObject oldAssignee = (InternalEObject)assignee; assignee = (Person)eResolveProxy(oldAssignee); if (assignee != oldAssignee) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, TasktrackerPackage.TASK__ASSIGNEE, oldAssignee, assignee)); } } return assignee; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Person basicGetAssignee() { return assignee; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setAssignee(Person newAssignee) { Person oldAssignee = assignee; assignee = newAssignee; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TasktrackerPackage.TASK__ASSIGNEE, oldAssignee, assignee)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public TaskState getState() { return state; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setState(TaskState newState) { TaskState oldState = state; state = newState == null ? STATE_EDEFAULT : newState; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TasktrackerPackage.TASK__STATE, oldState, state)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Version getTargetVersion() { if (targetVersion != null && targetVersion.eIsProxy()) { InternalEObject oldTargetVersion = (InternalEObject)targetVersion; targetVersion = (Version)eResolveProxy(oldTargetVersion); if (targetVersion != oldTargetVersion) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, TasktrackerPackage.TASK__TARGET_VERSION, oldTargetVersion, targetVersion)); } } return targetVersion; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Version basicGetTargetVersion() { return targetVersion; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setTargetVersion(Version newTargetVersion) { Version oldTargetVersion = targetVersion; targetVersion = newTargetVersion; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TasktrackerPackage.TASK__TARGET_VERSION, oldTargetVersion, targetVersion)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Version getProductVersion() { if (productVersion != null && productVersion.eIsProxy()) { InternalEObject oldProductVersion = (InternalEObject)productVersion; productVersion = (Version)eResolveProxy(oldProductVersion); if (productVersion != oldProductVersion) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, TasktrackerPackage.TASK__PRODUCT_VERSION, oldProductVersion, productVersion)); } } return productVersion; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Version basicGetProductVersion() { return productVersion; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setProductVersion(Version newProductVersion) { Version oldProductVersion = productVersion; productVersion = newProductVersion; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, TasktrackerPackage.TASK__PRODUCT_VERSION, oldProductVersion, productVersion)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<TaskAttachment> getAttachmentList() { if (attachmentList == null) { attachmentList = new EObjectContainmentWithInverseEList<TaskAttachment>(TaskAttachment.class, this, TasktrackerPackage.TASK__ATTACHMENT_LIST, TasktrackerPackage.TASK_ATTACHMENT__TASK); } return attachmentList; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @SuppressWarnings("unchecked") @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case TasktrackerPackage.TASK__REPOSITORY: if (repository != null) msgs = ((InternalEObject)repository).eInverseRemove(this, TasktrackerPackage.TASK_REPOSITORY__TASK_LIST, TaskRepository.class, msgs); return basicSetRepository((TaskRepository)otherEnd, msgs); case TasktrackerPackage.TASK__COMMENT_LIST: return ((InternalEList<InternalEObject>)(InternalEList<?>)getCommentList()).basicAdd(otherEnd, msgs); case TasktrackerPackage.TASK__CHANGE_SET_LIST: return ((InternalEList<InternalEObject>)(InternalEList<?>)getChangeSetList()).basicAdd(otherEnd, msgs); case TasktrackerPackage.TASK__ATTACHMENT_LIST: return ((InternalEList<InternalEObject>)(InternalEList<?>)getAttachmentList()).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 TasktrackerPackage.TASK__REPOSITORY: return basicSetRepository(null, msgs); case TasktrackerPackage.TASK__COMMENT_LIST: return ((InternalEList<?>)getCommentList()).basicRemove(otherEnd, msgs); case TasktrackerPackage.TASK__CHANGE_SET_LIST: return ((InternalEList<?>)getChangeSetList()).basicRemove(otherEnd, msgs); case TasktrackerPackage.TASK__ATTACHMENT_LIST: return ((InternalEList<?>)getAttachmentList()).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 TasktrackerPackage.TASK__REPOSITORY: if (resolve) return getRepository(); return basicGetRepository(); case TasktrackerPackage.TASK__TITLE: return getTitle(); case TasktrackerPackage.TASK__DESCRIPTION: return getDescription(); case TasktrackerPackage.TASK__COMMENT_LIST: return getCommentList(); case TasktrackerPackage.TASK__CHANGE_SET_LIST: return getChangeSetList(); case TasktrackerPackage.TASK__REPORTER: if (resolve) return getReporter(); return basicGetReporter(); case TasktrackerPackage.TASK__ASSIGNEE: if (resolve) return getAssignee(); return basicGetAssignee(); case TasktrackerPackage.TASK__STATE: return getState(); case TasktrackerPackage.TASK__TARGET_VERSION: if (resolve) return getTargetVersion(); return basicGetTargetVersion(); case TasktrackerPackage.TASK__PRODUCT_VERSION: if (resolve) return getProductVersion(); return basicGetProductVersion(); case TasktrackerPackage.TASK__ATTACHMENT_LIST: return getAttachmentList(); } 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 TasktrackerPackage.TASK__REPOSITORY: setRepository((TaskRepository)newValue); return; case TasktrackerPackage.TASK__TITLE: setTitle((String)newValue); return; case TasktrackerPackage.TASK__DESCRIPTION: setDescription((String)newValue); return; case TasktrackerPackage.TASK__COMMENT_LIST: getCommentList().clear(); getCommentList().addAll((Collection<? extends Comment>)newValue); return; case TasktrackerPackage.TASK__CHANGE_SET_LIST: getChangeSetList().clear(); getChangeSetList().addAll((Collection<? extends ChangeSet>)newValue); return; case TasktrackerPackage.TASK__REPORTER: setReporter((Person)newValue); return; case TasktrackerPackage.TASK__ASSIGNEE: setAssignee((Person)newValue); return; case TasktrackerPackage.TASK__STATE: setState((TaskState)newValue); return; case TasktrackerPackage.TASK__TARGET_VERSION: setTargetVersion((Version)newValue); return; case TasktrackerPackage.TASK__PRODUCT_VERSION: setProductVersion((Version)newValue); return; case TasktrackerPackage.TASK__ATTACHMENT_LIST: getAttachmentList().clear(); getAttachmentList().addAll((Collection<? extends TaskAttachment>)newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case TasktrackerPackage.TASK__REPOSITORY: setRepository((TaskRepository)null); return; case TasktrackerPackage.TASK__TITLE: setTitle(TITLE_EDEFAULT); return; case TasktrackerPackage.TASK__DESCRIPTION: setDescription(DESCRIPTION_EDEFAULT); return; case TasktrackerPackage.TASK__COMMENT_LIST: getCommentList().clear(); return; case TasktrackerPackage.TASK__CHANGE_SET_LIST: getChangeSetList().clear(); return; case TasktrackerPackage.TASK__REPORTER: setReporter((Person)null); return; case TasktrackerPackage.TASK__ASSIGNEE: setAssignee((Person)null); return; case TasktrackerPackage.TASK__STATE: setState(STATE_EDEFAULT); return; case TasktrackerPackage.TASK__TARGET_VERSION: setTargetVersion((Version)null); return; case TasktrackerPackage.TASK__PRODUCT_VERSION: setProductVersion((Version)null); return; case TasktrackerPackage.TASK__ATTACHMENT_LIST: getAttachmentList().clear(); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case TasktrackerPackage.TASK__REPOSITORY: return repository != null; case TasktrackerPackage.TASK__TITLE: return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title); case TasktrackerPackage.TASK__DESCRIPTION: return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description); case TasktrackerPackage.TASK__COMMENT_LIST: return commentList != null && !commentList.isEmpty(); case TasktrackerPackage.TASK__CHANGE_SET_LIST: return changeSetList != null && !changeSetList.isEmpty(); case TasktrackerPackage.TASK__REPORTER: return reporter != null; case TasktrackerPackage.TASK__ASSIGNEE: return assignee != null; case TasktrackerPackage.TASK__STATE: return state != STATE_EDEFAULT; case TasktrackerPackage.TASK__TARGET_VERSION: return targetVersion != null; case TasktrackerPackage.TASK__PRODUCT_VERSION: return productVersion != null; case TasktrackerPackage.TASK__ATTACHMENT_LIST: return attachmentList != null && !attachmentList.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(" (title: "); result.append(title); result.append(", description: "); result.append(description); result.append(", state: "); result.append(state); result.append(')'); return result.toString(); } } //TaskImpl