/**
* Copyright (c) 2015-2016 Obeo, Inria
* 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:
* - William Piers <william.piers@obeo.fr>
* - Philippe Merle <philippe.merle@inria.fr>
*/
package org.occiware.clouddesigner.occi.docker.impl;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.occiware.clouddesigner.occi.docker.DockerPackage;
import org.occiware.clouddesigner.occi.docker.Volume;
import org.occiware.clouddesigner.occi.infrastructure.impl.StorageImpl;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Volume</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* </p>
* <ul>
* <li>{@link org.occiware.clouddesigner.occi.docker.impl.VolumeImpl#getDriver <em>Driver</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.docker.impl.VolumeImpl#getLabels <em>Labels</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.docker.impl.VolumeImpl#getOptions <em>Options</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.docker.impl.VolumeImpl#getSource <em>Source</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.docker.impl.VolumeImpl#getDestination <em>Destination</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.docker.impl.VolumeImpl#getMode <em>Mode</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.docker.impl.VolumeImpl#getRw <em>Rw</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.docker.impl.VolumeImpl#getPropagation <em>Propagation</em>}</li>
* <li>{@link org.occiware.clouddesigner.occi.docker.impl.VolumeImpl#getName <em>Name</em>}</li>
* </ul>
*
* @generated
*/
public class VolumeImpl extends StorageImpl implements Volume {
/**
* The default value of the '{@link #getDriver() <em>Driver</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDriver()
* @generated
* @ordered
*/
protected static final String DRIVER_EDEFAULT = "local";
/**
* The cached value of the '{@link #getDriver() <em>Driver</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDriver()
* @generated
* @ordered
*/
protected String driver = DRIVER_EDEFAULT;
/**
* The default value of the '{@link #getLabels() <em>Labels</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getLabels()
* @generated
* @ordered
*/
protected static final String LABELS_EDEFAULT = null;
/**
* The cached value of the '{@link #getLabels() <em>Labels</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getLabels()
* @generated
* @ordered
*/
protected String labels = LABELS_EDEFAULT;
/**
* The default value of the '{@link #getOptions() <em>Options</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOptions()
* @generated
* @ordered
*/
protected static final String OPTIONS_EDEFAULT = null;
/**
* The cached value of the '{@link #getOptions() <em>Options</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOptions()
* @generated
* @ordered
*/
protected String options = OPTIONS_EDEFAULT;
/**
* The default value of the '{@link #getSource() <em>Source</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSource()
* @generated
* @ordered
*/
protected static final String SOURCE_EDEFAULT = null;
/**
* The cached value of the '{@link #getSource() <em>Source</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSource()
* @generated
* @ordered
*/
protected String source = SOURCE_EDEFAULT;
/**
* The default value of the '{@link #getDestination() <em>Destination</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDestination()
* @generated
* @ordered
*/
protected static final String DESTINATION_EDEFAULT = null;
/**
* The cached value of the '{@link #getDestination() <em>Destination</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDestination()
* @generated
* @ordered
*/
protected String destination = DESTINATION_EDEFAULT;
/**
* The default value of the '{@link #getMode() <em>Mode</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getMode()
* @generated
* @ordered
*/
protected static final String MODE_EDEFAULT = null;
/**
* The cached value of the '{@link #getMode() <em>Mode</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getMode()
* @generated
* @ordered
*/
protected String mode = MODE_EDEFAULT;
/**
* The default value of the '{@link #getRw() <em>Rw</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRw()
* @generated
* @ordered
*/
protected static final String RW_EDEFAULT = null;
/**
* The cached value of the '{@link #getRw() <em>Rw</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRw()
* @generated
* @ordered
*/
protected String rw = RW_EDEFAULT;
/**
* The default value of the '{@link #getPropagation() <em>Propagation</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getPropagation()
* @generated
* @ordered
*/
protected static final String PROPAGATION_EDEFAULT = null;
/**
* The cached value of the '{@link #getPropagation() <em>Propagation</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getPropagation()
* @generated
* @ordered
*/
protected String propagation = PROPAGATION_EDEFAULT;
/**
* 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;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected VolumeImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return DockerPackage.Literals.VOLUME;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getDriver() {
return driver;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setDriver(String newDriver) {
String oldDriver = driver;
driver = newDriver;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DockerPackage.VOLUME__DRIVER, oldDriver, driver));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getLabels() {
return labels;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setLabels(String newLabels) {
String oldLabels = labels;
labels = newLabels;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DockerPackage.VOLUME__LABELS, oldLabels, labels));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getOptions() {
return options;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setOptions(String newOptions) {
String oldOptions = options;
options = newOptions;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DockerPackage.VOLUME__OPTIONS, oldOptions, options));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getSource() {
return source;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setSource(String newSource) {
String oldSource = source;
source = newSource;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DockerPackage.VOLUME__SOURCE, oldSource, source));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getDestination() {
return destination;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setDestination(String newDestination) {
String oldDestination = destination;
destination = newDestination;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DockerPackage.VOLUME__DESTINATION, oldDestination, destination));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getMode() {
return mode;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setMode(String newMode) {
String oldMode = mode;
mode = newMode;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DockerPackage.VOLUME__MODE, oldMode, mode));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getRw() {
return rw;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setRw(String newRw) {
String oldRw = rw;
rw = newRw;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DockerPackage.VOLUME__RW, oldRw, rw));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getPropagation() {
return propagation;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setPropagation(String newPropagation) {
String oldPropagation = propagation;
propagation = newPropagation;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DockerPackage.VOLUME__PROPAGATION, oldPropagation, propagation));
}
/**
* <!-- 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, DockerPackage.VOLUME__NAME, oldName, name));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case DockerPackage.VOLUME__DRIVER:
return getDriver();
case DockerPackage.VOLUME__LABELS:
return getLabels();
case DockerPackage.VOLUME__OPTIONS:
return getOptions();
case DockerPackage.VOLUME__SOURCE:
return getSource();
case DockerPackage.VOLUME__DESTINATION:
return getDestination();
case DockerPackage.VOLUME__MODE:
return getMode();
case DockerPackage.VOLUME__RW:
return getRw();
case DockerPackage.VOLUME__PROPAGATION:
return getPropagation();
case DockerPackage.VOLUME__NAME:
return getName();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case DockerPackage.VOLUME__DRIVER:
setDriver((String)newValue);
return;
case DockerPackage.VOLUME__LABELS:
setLabels((String)newValue);
return;
case DockerPackage.VOLUME__OPTIONS:
setOptions((String)newValue);
return;
case DockerPackage.VOLUME__SOURCE:
setSource((String)newValue);
return;
case DockerPackage.VOLUME__DESTINATION:
setDestination((String)newValue);
return;
case DockerPackage.VOLUME__MODE:
setMode((String)newValue);
return;
case DockerPackage.VOLUME__RW:
setRw((String)newValue);
return;
case DockerPackage.VOLUME__PROPAGATION:
setPropagation((String)newValue);
return;
case DockerPackage.VOLUME__NAME:
setName((String)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case DockerPackage.VOLUME__DRIVER:
setDriver(DRIVER_EDEFAULT);
return;
case DockerPackage.VOLUME__LABELS:
setLabels(LABELS_EDEFAULT);
return;
case DockerPackage.VOLUME__OPTIONS:
setOptions(OPTIONS_EDEFAULT);
return;
case DockerPackage.VOLUME__SOURCE:
setSource(SOURCE_EDEFAULT);
return;
case DockerPackage.VOLUME__DESTINATION:
setDestination(DESTINATION_EDEFAULT);
return;
case DockerPackage.VOLUME__MODE:
setMode(MODE_EDEFAULT);
return;
case DockerPackage.VOLUME__RW:
setRw(RW_EDEFAULT);
return;
case DockerPackage.VOLUME__PROPAGATION:
setPropagation(PROPAGATION_EDEFAULT);
return;
case DockerPackage.VOLUME__NAME:
setName(NAME_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case DockerPackage.VOLUME__DRIVER:
return DRIVER_EDEFAULT == null ? driver != null : !DRIVER_EDEFAULT.equals(driver);
case DockerPackage.VOLUME__LABELS:
return LABELS_EDEFAULT == null ? labels != null : !LABELS_EDEFAULT.equals(labels);
case DockerPackage.VOLUME__OPTIONS:
return OPTIONS_EDEFAULT == null ? options != null : !OPTIONS_EDEFAULT.equals(options);
case DockerPackage.VOLUME__SOURCE:
return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source);
case DockerPackage.VOLUME__DESTINATION:
return DESTINATION_EDEFAULT == null ? destination != null : !DESTINATION_EDEFAULT.equals(destination);
case DockerPackage.VOLUME__MODE:
return MODE_EDEFAULT == null ? mode != null : !MODE_EDEFAULT.equals(mode);
case DockerPackage.VOLUME__RW:
return RW_EDEFAULT == null ? rw != null : !RW_EDEFAULT.equals(rw);
case DockerPackage.VOLUME__PROPAGATION:
return PROPAGATION_EDEFAULT == null ? propagation != null : !PROPAGATION_EDEFAULT.equals(propagation);
case DockerPackage.VOLUME__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
}
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(" (driver: ");
result.append(driver);
result.append(", labels: ");
result.append(labels);
result.append(", options: ");
result.append(options);
result.append(", source: ");
result.append(source);
result.append(", destination: ");
result.append(destination);
result.append(", mode: ");
result.append(mode);
result.append(", rw: ");
result.append(rw);
result.append(", propagation: ");
result.append(propagation);
result.append(", name: ");
result.append(name);
result.append(')');
return result.toString();
}
} //VolumeImpl