| /** |
| * Copyright (c) 2015 CEA LIST. |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Benoit Maggi (CEA LIST) benoit.maggi@cea.fr - Initial API and implementation |
| * |
| */ |
| package org.eclipse.papyrus.sysml14.blocks.internal.impl; |
| |
| 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.MinimalEObjectImpl; |
| |
| import org.eclipse.papyrus.sysml14.blocks.BlocksPackage; |
| import org.eclipse.papyrus.sysml14.blocks.ValueType; |
| |
| import org.eclipse.uml2.uml.DataType; |
| import org.eclipse.uml2.uml.InstanceSpecification; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * An implementation of the model object '<em><b>Value Type</b></em>'. |
| * <!-- end-user-doc --> |
| * <p> |
| * The following features are implemented: |
| * </p> |
| * <ul> |
| * <li>{@link org.eclipse.papyrus.sysml14.blocks.internal.impl.ValueTypeImpl#getBase_DataType <em>Base Data Type</em>}</li> |
| * <li>{@link org.eclipse.papyrus.sysml14.blocks.internal.impl.ValueTypeImpl#getQuantityKind <em>Quantity Kind</em>}</li> |
| * <li>{@link org.eclipse.papyrus.sysml14.blocks.internal.impl.ValueTypeImpl#getUnit <em>Unit</em>}</li> |
| * </ul> |
| * |
| * @generated |
| */ |
| public class ValueTypeImpl extends MinimalEObjectImpl.Container implements ValueType { |
| /** |
| * The cached value of the '{@link #getBase_DataType() <em>Base Data Type</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getBase_DataType() |
| * @generated |
| * @ordered |
| */ |
| protected DataType base_DataType; |
| |
| /** |
| * The cached value of the '{@link #getQuantityKind() <em>Quantity Kind</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getQuantityKind() |
| * @generated |
| * @ordered |
| */ |
| protected InstanceSpecification quantityKind; |
| |
| /** |
| * The cached value of the '{@link #getUnit() <em>Unit</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getUnit() |
| * @generated |
| * @ordered |
| */ |
| protected InstanceSpecification unit; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected ValueTypeImpl() { |
| super(); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| protected EClass eStaticClass() { |
| return BlocksPackage.Literals.VALUE_TYPE; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public DataType getBase_DataType() { |
| if (base_DataType != null && base_DataType.eIsProxy()) { |
| InternalEObject oldBase_DataType = (InternalEObject)base_DataType; |
| base_DataType = (DataType)eResolveProxy(oldBase_DataType); |
| if (base_DataType != oldBase_DataType) { |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.RESOLVE, BlocksPackage.VALUE_TYPE__BASE_DATA_TYPE, oldBase_DataType, base_DataType)); |
| } |
| } |
| return base_DataType; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public DataType basicGetBase_DataType() { |
| return base_DataType; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setBase_DataType(DataType newBase_DataType) { |
| DataType oldBase_DataType = base_DataType; |
| base_DataType = newBase_DataType; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BlocksPackage.VALUE_TYPE__BASE_DATA_TYPE, oldBase_DataType, base_DataType)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public InstanceSpecification getQuantityKind() { |
| if (quantityKind != null && quantityKind.eIsProxy()) { |
| InternalEObject oldQuantityKind = (InternalEObject)quantityKind; |
| quantityKind = (InstanceSpecification)eResolveProxy(oldQuantityKind); |
| if (quantityKind != oldQuantityKind) { |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.RESOLVE, BlocksPackage.VALUE_TYPE__QUANTITY_KIND, oldQuantityKind, quantityKind)); |
| } |
| } |
| return quantityKind; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public InstanceSpecification basicGetQuantityKind() { |
| return quantityKind; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setQuantityKind(InstanceSpecification newQuantityKind) { |
| InstanceSpecification oldQuantityKind = quantityKind; |
| quantityKind = newQuantityKind; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BlocksPackage.VALUE_TYPE__QUANTITY_KIND, oldQuantityKind, quantityKind)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public InstanceSpecification getUnit() { |
| if (unit != null && unit.eIsProxy()) { |
| InternalEObject oldUnit = (InternalEObject)unit; |
| unit = (InstanceSpecification)eResolveProxy(oldUnit); |
| if (unit != oldUnit) { |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.RESOLVE, BlocksPackage.VALUE_TYPE__UNIT, oldUnit, unit)); |
| } |
| } |
| return unit; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public InstanceSpecification basicGetUnit() { |
| return unit; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setUnit(InstanceSpecification newUnit) { |
| InstanceSpecification oldUnit = unit; |
| unit = newUnit; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BlocksPackage.VALUE_TYPE__UNIT, oldUnit, unit)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public Object eGet(int featureID, boolean resolve, boolean coreType) { |
| switch (featureID) { |
| case BlocksPackage.VALUE_TYPE__BASE_DATA_TYPE: |
| if (resolve) return getBase_DataType(); |
| return basicGetBase_DataType(); |
| case BlocksPackage.VALUE_TYPE__QUANTITY_KIND: |
| if (resolve) return getQuantityKind(); |
| return basicGetQuantityKind(); |
| case BlocksPackage.VALUE_TYPE__UNIT: |
| if (resolve) return getUnit(); |
| return basicGetUnit(); |
| } |
| return super.eGet(featureID, resolve, coreType); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public void eSet(int featureID, Object newValue) { |
| switch (featureID) { |
| case BlocksPackage.VALUE_TYPE__BASE_DATA_TYPE: |
| setBase_DataType((DataType)newValue); |
| return; |
| case BlocksPackage.VALUE_TYPE__QUANTITY_KIND: |
| setQuantityKind((InstanceSpecification)newValue); |
| return; |
| case BlocksPackage.VALUE_TYPE__UNIT: |
| setUnit((InstanceSpecification)newValue); |
| return; |
| } |
| super.eSet(featureID, newValue); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public void eUnset(int featureID) { |
| switch (featureID) { |
| case BlocksPackage.VALUE_TYPE__BASE_DATA_TYPE: |
| setBase_DataType((DataType)null); |
| return; |
| case BlocksPackage.VALUE_TYPE__QUANTITY_KIND: |
| setQuantityKind((InstanceSpecification)null); |
| return; |
| case BlocksPackage.VALUE_TYPE__UNIT: |
| setUnit((InstanceSpecification)null); |
| return; |
| } |
| super.eUnset(featureID); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| @Override |
| public boolean eIsSet(int featureID) { |
| switch (featureID) { |
| case BlocksPackage.VALUE_TYPE__BASE_DATA_TYPE: |
| return base_DataType != null; |
| case BlocksPackage.VALUE_TYPE__QUANTITY_KIND: |
| return quantityKind != null; |
| case BlocksPackage.VALUE_TYPE__UNIT: |
| return unit != null; |
| } |
| return super.eIsSet(featureID); |
| } |
| |
| } //ValueTypeImpl |