blob: 430b515cc1f20fadb51236ae918ae4f0bab99b8f [file] [log] [blame]
/*********************************************************************
* Copyright (c) 2012, 2019 SAP SE
*
* 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/
*
* Contributors:
* SAP SE - initial API, implementation and documentation
*
* SPDX-License-Identifier: EPL-2.0
**********************************************************************/
package org.eclipse.graphiti.examples.mm.filesystem.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.impl.EObjectImpl;
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.graphiti.examples.mm.filesystem.File;
import org.eclipse.graphiti.examples.mm.filesystem.Filesystem;
import org.eclipse.graphiti.examples.mm.filesystem.FilesystemPackage;
import org.eclipse.graphiti.examples.mm.filesystem.Folder;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Filesystem</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.eclipse.graphiti.examples.mm.filesystem.impl.FilesystemImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.graphiti.examples.mm.filesystem.impl.FilesystemImpl#getFolders <em>Folders</em>}</li>
* <li>{@link org.eclipse.graphiti.examples.mm.filesystem.impl.FilesystemImpl#getFiles <em>Files</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class FilesystemImpl extends EObjectImpl implements Filesystem {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static final String copyright = "<copyright>\r\n\r\nCopyright (c) 2012, 2012 SAP AG.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\n\r\nContributors:\r\n SAP AG - initial API, implementation and documentation\r\n\r\n</copyright>";
/**
* The default value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getName()
* @generated
* @ordered
*/
protected static final String NAME_EDEFAULT = null;
/**
* The cached value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getName()
* @generated
* @ordered
*/
protected String name = NAME_EDEFAULT;
/**
* The cached value of the '{@link #getFolders() <em>Folders</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getFolders()
* @generated
* @ordered
*/
protected EList<Folder> folders;
/**
* The cached value of the '{@link #getFiles() <em>Files</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getFiles()
* @generated
* @ordered
*/
protected EList<File> files;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected FilesystemImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return FilesystemPackage.Literals.FILESYSTEM;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getName() {
return name;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setName(String newName) {
String oldName = name;
name = newName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, FilesystemPackage.FILESYSTEM__NAME, oldName, name));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<Folder> getFolders() {
if (folders == null) {
folders = new EObjectContainmentEList<Folder>(Folder.class, this, FilesystemPackage.FILESYSTEM__FOLDERS);
}
return folders;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<File> getFiles() {
if (files == null) {
files = new EObjectContainmentEList<File>(File.class, this, FilesystemPackage.FILESYSTEM__FILES);
}
return files;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case FilesystemPackage.FILESYSTEM__FOLDERS:
return ((InternalEList<?>)getFolders()).basicRemove(otherEnd, msgs);
case FilesystemPackage.FILESYSTEM__FILES:
return ((InternalEList<?>)getFiles()).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 FilesystemPackage.FILESYSTEM__NAME:
return getName();
case FilesystemPackage.FILESYSTEM__FOLDERS:
return getFolders();
case FilesystemPackage.FILESYSTEM__FILES:
return getFiles();
}
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 FilesystemPackage.FILESYSTEM__NAME:
setName((String)newValue);
return;
case FilesystemPackage.FILESYSTEM__FOLDERS:
getFolders().clear();
getFolders().addAll((Collection<? extends Folder>)newValue);
return;
case FilesystemPackage.FILESYSTEM__FILES:
getFiles().clear();
getFiles().addAll((Collection<? extends File>)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case FilesystemPackage.FILESYSTEM__NAME:
setName(NAME_EDEFAULT);
return;
case FilesystemPackage.FILESYSTEM__FOLDERS:
getFolders().clear();
return;
case FilesystemPackage.FILESYSTEM__FILES:
getFiles().clear();
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case FilesystemPackage.FILESYSTEM__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
case FilesystemPackage.FILESYSTEM__FOLDERS:
return folders != null && !folders.isEmpty();
case FilesystemPackage.FILESYSTEM__FILES:
return files != null && !files.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(" (name: ");
result.append(name);
result.append(')');
return result.toString();
}
} //FilesystemImpl