blob: 8cea62c9fc1b9c2062e01a3b808578104f657a27 [file] [log] [blame]
/**
* *******************************************************************************
* Copyright (c) 2015-2021 Robert Bosch GmbH and others.
*
* 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/
*
* SPDX-License-Identifier: EPL-2.0
*
* Generated using Eclipse EMF
*
* *******************************************************************************
*/
package org.eclipse.app4mc.amalthea.model.impl;
import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
import org.eclipse.app4mc.amalthea.model.ComponentStructure;
import org.eclipse.app4mc.amalthea.model.IComponentStructureMember;
import org.eclipse.app4mc.amalthea.model.INamespaceMember;
import org.eclipse.app4mc.amalthea.model.MainInterface;
import org.eclipse.app4mc.amalthea.model.Namespace;
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;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Main Interface</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* </p>
* <ul>
* <li>{@link org.eclipse.app4mc.amalthea.model.impl.MainInterfaceImpl#getNamespace <em>Namespace</em>}</li>
* <li>{@link org.eclipse.app4mc.amalthea.model.impl.MainInterfaceImpl#getStructure <em>Structure</em>}</li>
* <li>{@link org.eclipse.app4mc.amalthea.model.impl.MainInterfaceImpl#getVersion <em>Version</em>}</li>
* </ul>
*
* @generated
*/
public class MainInterfaceImpl extends ComponentInterfaceImpl implements MainInterface {
/**
* The cached value of the '{@link #getNamespace() <em>Namespace</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getNamespace()
* @generated
* @ordered
*/
protected Namespace namespace;
/**
* The cached value of the '{@link #getStructure() <em>Structure</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getStructure()
* @generated
* @ordered
*/
protected ComponentStructure structure;
/**
* The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getVersion()
* @generated
* @ordered
*/
protected static final String VERSION_EDEFAULT = "1.0";
/**
* The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getVersion()
* @generated
* @ordered
*/
protected String version = VERSION_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected MainInterfaceImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return AmaltheaPackage.eINSTANCE.getMainInterface();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Namespace getNamespace() {
if (namespace != null && namespace.eIsProxy()) {
InternalEObject oldNamespace = (InternalEObject)namespace;
namespace = (Namespace)eResolveProxy(oldNamespace);
if (namespace != oldNamespace) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.MAIN_INTERFACE__NAMESPACE, oldNamespace, namespace));
}
}
return namespace;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Namespace basicGetNamespace() {
return namespace;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void setNamespace(Namespace newNamespace) {
Namespace oldNamespace = namespace;
namespace = newNamespace;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.MAIN_INTERFACE__NAMESPACE, oldNamespace, namespace));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public ComponentStructure getStructure() {
if (structure != null && structure.eIsProxy()) {
InternalEObject oldStructure = (InternalEObject)structure;
structure = (ComponentStructure)eResolveProxy(oldStructure);
if (structure != oldStructure) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.MAIN_INTERFACE__STRUCTURE, oldStructure, structure));
}
}
return structure;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ComponentStructure basicGetStructure() {
return structure;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void setStructure(ComponentStructure newStructure) {
ComponentStructure oldStructure = structure;
structure = newStructure;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.MAIN_INTERFACE__STRUCTURE, oldStructure, structure));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String getVersion() {
return version;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void setVersion(String newVersion) {
String oldVersion = version;
version = newVersion;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.MAIN_INTERFACE__VERSION, oldVersion, version));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case AmaltheaPackage.MAIN_INTERFACE__NAMESPACE:
if (resolve) return getNamespace();
return basicGetNamespace();
case AmaltheaPackage.MAIN_INTERFACE__STRUCTURE:
if (resolve) return getStructure();
return basicGetStructure();
case AmaltheaPackage.MAIN_INTERFACE__VERSION:
return getVersion();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case AmaltheaPackage.MAIN_INTERFACE__NAMESPACE:
setNamespace((Namespace)newValue);
return;
case AmaltheaPackage.MAIN_INTERFACE__STRUCTURE:
setStructure((ComponentStructure)newValue);
return;
case AmaltheaPackage.MAIN_INTERFACE__VERSION:
setVersion((String)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case AmaltheaPackage.MAIN_INTERFACE__NAMESPACE:
setNamespace((Namespace)null);
return;
case AmaltheaPackage.MAIN_INTERFACE__STRUCTURE:
setStructure((ComponentStructure)null);
return;
case AmaltheaPackage.MAIN_INTERFACE__VERSION:
setVersion(VERSION_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case AmaltheaPackage.MAIN_INTERFACE__NAMESPACE:
return namespace != null;
case AmaltheaPackage.MAIN_INTERFACE__STRUCTURE:
return structure != null;
case AmaltheaPackage.MAIN_INTERFACE__VERSION:
return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
if (baseClass == INamespaceMember.class) {
switch (derivedFeatureID) {
case AmaltheaPackage.MAIN_INTERFACE__NAMESPACE: return AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE;
default: return -1;
}
}
if (baseClass == IComponentStructureMember.class) {
switch (derivedFeatureID) {
case AmaltheaPackage.MAIN_INTERFACE__STRUCTURE: return AmaltheaPackage.ICOMPONENT_STRUCTURE_MEMBER__STRUCTURE;
default: return -1;
}
}
return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
if (baseClass == INamespaceMember.class) {
switch (baseFeatureID) {
case AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE: return AmaltheaPackage.MAIN_INTERFACE__NAMESPACE;
default: return -1;
}
}
if (baseClass == IComponentStructureMember.class) {
switch (baseFeatureID) {
case AmaltheaPackage.ICOMPONENT_STRUCTURE_MEMBER__STRUCTURE: return AmaltheaPackage.MAIN_INTERFACE__STRUCTURE;
default: return -1;
}
}
return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String toString() {
if (eIsProxy()) return super.toString();
StringBuilder result = new StringBuilder(super.toString());
result.append(" (version: ");
result.append(version);
result.append(')');
return result.toString();
}
} //MainInterfaceImpl