/** * Copyright (c) 2013 CEA LIST * * 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: * CEA LIST - Initial API and implementation * */ package org.eclipse.papyrus.C_Cpp.impl; import java.util.Collection; import org.eclipse.emf.common.notify.Notification; 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.EDataTypeEList; import org.eclipse.emf.ecore.util.EDataTypeUniqueEList; import org.eclipse.papyrus.C_Cpp.C_CppPackage; import org.eclipse.papyrus.C_Cpp.ExternLibrary; /** * * An implementation of the model object 'Extern Library'. * *

* The following features are implemented: *

*

* * @generated */ public class ExternLibraryImpl extends EObjectImpl implements ExternLibrary { /** * The cached value of the '{@link #getIncludePaths() Include Paths}' attribute list. * * * @see #getIncludePaths() * @generated * @ordered */ protected EList includePaths; /** * The cached value of the '{@link #getBase_package() Base package}' reference. * * * @see #getBase_package() * @generated * @ordered */ protected org.eclipse.uml2.uml.Package base_package; /** * The cached value of the '{@link #getLibPaths() Lib Paths}' attribute list. * * * @see #getLibPaths() * @generated * @ordered */ protected EList libPaths; /** * The cached value of the '{@link #getMacros() Macros}' attribute list. * * * @see #getMacros() * @generated * @ordered */ protected EList macros; /** * The cached value of the '{@link #getLibs() Libs}' attribute list. * * * @see #getLibs() * @generated * @ordered */ protected EList libs; /** * The cached value of the '{@link #getIncludes() Includes}' attribute list. * * * @see #getIncludes() * @generated * @ordered */ protected EList includes; /** * * * @generated */ protected ExternLibraryImpl() { super(); } /** * * * @generated */ @Override protected EClass eStaticClass() { return C_CppPackage.Literals.EXTERN_LIBRARY; } /** * * * @generated */ public EList getIncludePaths() { if (includePaths == null) { includePaths = new EDataTypeEList(String.class, this, C_CppPackage.EXTERN_LIBRARY__INCLUDE_PATHS); } return includePaths; } /** * * * @generated */ public org.eclipse.uml2.uml.Package getBase_package() { if (base_package != null && base_package.eIsProxy()) { InternalEObject oldBase_package = (InternalEObject)base_package; base_package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_package); if (base_package != oldBase_package) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE, oldBase_package, base_package)); } } return base_package; } /** * * * @generated */ public org.eclipse.uml2.uml.Package basicGetBase_package() { return base_package; } /** * * * @generated */ public void setBase_package(org.eclipse.uml2.uml.Package newBase_package) { org.eclipse.uml2.uml.Package oldBase_package = base_package; base_package = newBase_package; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE, oldBase_package, base_package)); } /** * * * @generated */ public EList getLibPaths() { if (libPaths == null) { libPaths = new EDataTypeUniqueEList(String.class, this, C_CppPackage.EXTERN_LIBRARY__LIB_PATHS); } return libPaths; } /** * * * @generated */ public EList getMacros() { if (macros == null) { macros = new EDataTypeUniqueEList(String.class, this, C_CppPackage.EXTERN_LIBRARY__MACROS); } return macros; } /** * * * @generated */ public EList getLibs() { if (libs == null) { libs = new EDataTypeUniqueEList(String.class, this, C_CppPackage.EXTERN_LIBRARY__LIBS); } return libs; } /** * * * @generated */ public EList getIncludes() { if (includes == null) { includes = new EDataTypeUniqueEList(String.class, this, C_CppPackage.EXTERN_LIBRARY__INCLUDES); } return includes; } /** * * * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case C_CppPackage.EXTERN_LIBRARY__INCLUDE_PATHS: return getIncludePaths(); case C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE: if (resolve) return getBase_package(); return basicGetBase_package(); case C_CppPackage.EXTERN_LIBRARY__LIB_PATHS: return getLibPaths(); case C_CppPackage.EXTERN_LIBRARY__MACROS: return getMacros(); case C_CppPackage.EXTERN_LIBRARY__LIBS: return getLibs(); case C_CppPackage.EXTERN_LIBRARY__INCLUDES: return getIncludes(); } return super.eGet(featureID, resolve, coreType); } /** * * * @generated */ @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case C_CppPackage.EXTERN_LIBRARY__INCLUDE_PATHS: getIncludePaths().clear(); getIncludePaths().addAll((Collection)newValue); return; case C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE: setBase_package((org.eclipse.uml2.uml.Package)newValue); return; case C_CppPackage.EXTERN_LIBRARY__LIB_PATHS: getLibPaths().clear(); getLibPaths().addAll((Collection)newValue); return; case C_CppPackage.EXTERN_LIBRARY__MACROS: getMacros().clear(); getMacros().addAll((Collection)newValue); return; case C_CppPackage.EXTERN_LIBRARY__LIBS: getLibs().clear(); getLibs().addAll((Collection)newValue); return; case C_CppPackage.EXTERN_LIBRARY__INCLUDES: getIncludes().clear(); getIncludes().addAll((Collection)newValue); return; } super.eSet(featureID, newValue); } /** * * * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case C_CppPackage.EXTERN_LIBRARY__INCLUDE_PATHS: getIncludePaths().clear(); return; case C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE: setBase_package((org.eclipse.uml2.uml.Package)null); return; case C_CppPackage.EXTERN_LIBRARY__LIB_PATHS: getLibPaths().clear(); return; case C_CppPackage.EXTERN_LIBRARY__MACROS: getMacros().clear(); return; case C_CppPackage.EXTERN_LIBRARY__LIBS: getLibs().clear(); return; case C_CppPackage.EXTERN_LIBRARY__INCLUDES: getIncludes().clear(); return; } super.eUnset(featureID); } /** * * * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case C_CppPackage.EXTERN_LIBRARY__INCLUDE_PATHS: return includePaths != null && !includePaths.isEmpty(); case C_CppPackage.EXTERN_LIBRARY__BASE_PACKAGE: return base_package != null; case C_CppPackage.EXTERN_LIBRARY__LIB_PATHS: return libPaths != null && !libPaths.isEmpty(); case C_CppPackage.EXTERN_LIBRARY__MACROS: return macros != null && !macros.isEmpty(); case C_CppPackage.EXTERN_LIBRARY__LIBS: return libs != null && !libs.isEmpty(); case C_CppPackage.EXTERN_LIBRARY__INCLUDES: return includes != null && !includes.isEmpty(); } return super.eIsSet(featureID); } /** * * * @generated */ @Override public String toString() { if (eIsProxy()) return super.toString(); StringBuffer result = new StringBuffer(super.toString()); result.append(" (includePaths: "); //$NON-NLS-1$ result.append(includePaths); result.append(", libPaths: "); //$NON-NLS-1$ result.append(libPaths); result.append(", macros: "); //$NON-NLS-1$ result.append(macros); result.append(", libs: "); //$NON-NLS-1$ result.append(libs); result.append(", includes: "); //$NON-NLS-1$ result.append(includes); result.append(')'); return result.toString(); } } //ExternLibraryImpl