/** * <copyright> </copyright> * * $Id: ItemStateImpl.java 75298 2011-12-26 09:56:31Z nrousseau $ */ package org.talend.core.model.properties.impl; import java.util.Date; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.EObjectImpl; import org.talend.core.model.properties.FolderItem; import org.talend.core.model.properties.Item; import org.talend.core.model.properties.ItemState; import org.talend.core.model.properties.Project; import org.talend.core.model.properties.PropertiesPackage; import org.talend.core.model.properties.User; /** * <!-- begin-user-doc --> An implementation of the model object '<em><b>Item State</b></em>'. <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link org.talend.core.model.properties.impl.ItemStateImpl#getPath <em>Path</em>}</li> * <li>{@link org.talend.core.model.properties.impl.ItemStateImpl#isDeleted <em>Deleted</em>}</li> * <li>{@link org.talend.core.model.properties.impl.ItemStateImpl#isLocked <em>Locked</em>}</li> * <li>{@link org.talend.core.model.properties.impl.ItemStateImpl#getLocker <em>Locker</em>}</li> * <li>{@link org.talend.core.model.properties.impl.ItemStateImpl#getLockDate <em>Lock Date</em>}</li> * <li>{@link org.talend.core.model.properties.impl.ItemStateImpl#getCommitDate <em>Commit Date</em>}</li> * </ul> * </p> * * @generated */ public class ItemStateImpl extends EObjectImpl implements ItemState { /** * The default value of the '{@link #getPath() <em>Path</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc * --> * * @see #getPath() * @generated * @ordered */ protected static final String PATH_EDEFAULT = null; /** * The cached value of the '{@link #getPath() <em>Path</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc * --> * * @see #getPath() * @generated * @ordered */ protected String path = PATH_EDEFAULT; /** * The default value of the '{@link #isDeleted() <em>Deleted</em>}' attribute. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #isDeleted() * @generated * @ordered */ protected static final boolean DELETED_EDEFAULT = false; /** * The cached value of the '{@link #isDeleted() <em>Deleted</em>}' attribute. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #isDeleted() * @generated * @ordered */ protected boolean deleted = DELETED_EDEFAULT; /** * The default value of the '{@link #isLocked() <em>Locked</em>}' attribute. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #isLocked() * @generated * @ordered */ protected static final boolean LOCKED_EDEFAULT = false; /** * The cached value of the '{@link #isLocked() <em>Locked</em>}' attribute. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #isLocked() * @generated * @ordered */ protected boolean locked = LOCKED_EDEFAULT; /** * The cached value of the '{@link #getLocker() <em>Locker</em>}' reference. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #getLocker() * @generated * @ordered */ protected User locker; /** * The default value of the '{@link #getLockDate() <em>Lock Date</em>}' attribute. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #getLockDate() * @generated * @ordered */ protected static final Date LOCK_DATE_EDEFAULT = null; /** * The cached value of the '{@link #getLockDate() <em>Lock Date</em>}' attribute. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #getLockDate() * @generated * @ordered */ protected Date lockDate = LOCK_DATE_EDEFAULT; /** * The default value of the '{@link #getCommitDate() <em>Commit Date</em>}' attribute. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #getCommitDate() * @generated * @ordered */ protected static final Date COMMIT_DATE_EDEFAULT = null; /** * The cached value of the '{@link #getCommitDate() <em>Commit Date</em>}' attribute. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see #getCommitDate() * @generated * @ordered */ protected Date commitDate = COMMIT_DATE_EDEFAULT; /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ protected ItemStateImpl() { super(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return PropertiesPackage.Literals.ITEM_STATE; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public String getPath() { return path; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setPath(String newPath) { String oldPath = path; path = newPath; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, PropertiesPackage.ITEM_STATE__PATH, oldPath, path)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated NOT */ public boolean isDeleted() { if (relatedItem != null && relatedItem instanceof FolderItem) { FolderItem folder = (FolderItem) relatedItem; String completePath = folder.getProperty().getLabel(); if (folder.getParent() == null) { return false; } while (!(folder.getParent() instanceof Project)) { folder = (FolderItem) folder.getParent(); if (folder.getParent() == null) { return false; } completePath = folder.getProperty().getLabel() + "/" + completePath; } Project project = (Project) folder.getParent(); if (project.getDeletedFolders().contains(completePath)) { return true; } else { return false; } } return deleted; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated NOT */ public void setDeleted(boolean newDeleted) { if (relatedItem != null && relatedItem instanceof FolderItem) { FolderItem folder = (FolderItem) relatedItem; String completePath = folder.getProperty().getLabel(); if (folder.getParent() == null) { return; } while (!(folder.getParent() instanceof Project)) { folder = (FolderItem) folder.getParent(); if (folder.getParent() == null) { return; } completePath = folder.getProperty().getLabel() + "/" + completePath; } Project project = (Project) folder.getParent(); if (newDeleted) { if (!project.getDeletedFolders().contains(completePath)) { project.getDeletedFolders().add(completePath); } } else { project.getDeletedFolders().remove(completePath); } } boolean oldDeleted = deleted; deleted = newDeleted; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, PropertiesPackage.ITEM_STATE__DELETED, oldDeleted, deleted)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean isLocked() { return locked; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setLocked(boolean newLocked) { boolean oldLocked = locked; locked = newLocked; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, PropertiesPackage.ITEM_STATE__LOCKED, oldLocked, locked)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public User getLocker() { if (locker != null && locker.eIsProxy()) { InternalEObject oldLocker = (InternalEObject)locker; locker = (User)eResolveProxy(oldLocker); if (locker != oldLocker) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, PropertiesPackage.ITEM_STATE__LOCKER, oldLocker, locker)); } } return locker; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public User basicGetLocker() { return locker; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setLocker(User newLocker) { User oldLocker = locker; locker = newLocker; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, PropertiesPackage.ITEM_STATE__LOCKER, oldLocker, locker)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Date getLockDate() { return lockDate; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setLockDate(Date newLockDate) { Date oldLockDate = lockDate; lockDate = newLockDate; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, PropertiesPackage.ITEM_STATE__LOCK_DATE, oldLockDate, lockDate)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public Date getCommitDate() { return commitDate; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public void setCommitDate(Date newCommitDate) { Date oldCommitDate = commitDate; commitDate = newCommitDate; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, PropertiesPackage.ITEM_STATE__COMMIT_DATE, oldCommitDate, commitDate)); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case PropertiesPackage.ITEM_STATE__PATH: return getPath(); case PropertiesPackage.ITEM_STATE__DELETED: return isDeleted() ? Boolean.TRUE : Boolean.FALSE; case PropertiesPackage.ITEM_STATE__LOCKED: return isLocked() ? Boolean.TRUE : Boolean.FALSE; case PropertiesPackage.ITEM_STATE__LOCKER: if (resolve) return getLocker(); return basicGetLocker(); case PropertiesPackage.ITEM_STATE__LOCK_DATE: return getLockDate(); case PropertiesPackage.ITEM_STATE__COMMIT_DATE: return getCommitDate(); } return super.eGet(featureID, resolve, coreType); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case PropertiesPackage.ITEM_STATE__PATH: setPath((String)newValue); return; case PropertiesPackage.ITEM_STATE__DELETED: setDeleted(((Boolean)newValue).booleanValue()); return; case PropertiesPackage.ITEM_STATE__LOCKED: setLocked(((Boolean)newValue).booleanValue()); return; case PropertiesPackage.ITEM_STATE__LOCKER: setLocker((User)newValue); return; case PropertiesPackage.ITEM_STATE__LOCK_DATE: setLockDate((Date)newValue); return; case PropertiesPackage.ITEM_STATE__COMMIT_DATE: setCommitDate((Date)newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case PropertiesPackage.ITEM_STATE__PATH: setPath(PATH_EDEFAULT); return; case PropertiesPackage.ITEM_STATE__DELETED: setDeleted(DELETED_EDEFAULT); return; case PropertiesPackage.ITEM_STATE__LOCKED: setLocked(LOCKED_EDEFAULT); return; case PropertiesPackage.ITEM_STATE__LOCKER: setLocker((User)null); return; case PropertiesPackage.ITEM_STATE__LOCK_DATE: setLockDate(LOCK_DATE_EDEFAULT); return; case PropertiesPackage.ITEM_STATE__COMMIT_DATE: setCommitDate(COMMIT_DATE_EDEFAULT); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case PropertiesPackage.ITEM_STATE__PATH: return PATH_EDEFAULT == null ? path != null : !PATH_EDEFAULT.equals(path); case PropertiesPackage.ITEM_STATE__DELETED: return deleted != DELETED_EDEFAULT; case PropertiesPackage.ITEM_STATE__LOCKED: return locked != LOCKED_EDEFAULT; case PropertiesPackage.ITEM_STATE__LOCKER: return locker != null; case PropertiesPackage.ITEM_STATE__LOCK_DATE: return LOCK_DATE_EDEFAULT == null ? lockDate != null : !LOCK_DATE_EDEFAULT.equals(lockDate); case PropertiesPackage.ITEM_STATE__COMMIT_DATE: return COMMIT_DATE_EDEFAULT == null ? commitDate != null : !COMMIT_DATE_EDEFAULT.equals(commitDate); } 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(" (path: "); result.append(path); result.append(", deleted: "); result.append(deleted); result.append(", locked: "); result.append(locked); result.append(", lockDate: "); result.append(lockDate); result.append(", commitDate: "); result.append(commitDate); result.append(')'); return result.toString(); } private Item relatedItem; /** * @generated NOT */ public void setItemRelated(Item item) { relatedItem = item; } } // ItemStateImpl