001/** 002 * ****************************************************************************** 003 * Copyright (c) 2018 Red Hat Inc 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the Eclipse Public License v1.0 006 * which accompanies this distribution, and is available at 007 * http://www.eclipse.org/legal/epl-v10.html 008 * * 009 * Contributors: 010 * Jens Reimann - initial API and implementation 011 * ****************************************************************************** 012 */ 013package de.dentrassi.varlink.idl.varlinkIdl.impl; 014 015import de.dentrassi.varlink.idl.varlinkIdl.TypeAlias; 016import de.dentrassi.varlink.idl.varlinkIdl.TypeReference; 017import de.dentrassi.varlink.idl.varlinkIdl.VarlinkIdlPackage; 018 019import org.eclipse.emf.common.notify.Notification; 020 021import org.eclipse.emf.ecore.EClass; 022import org.eclipse.emf.ecore.InternalEObject; 023 024import org.eclipse.emf.ecore.impl.ENotificationImpl; 025 026/** 027 * <!-- begin-user-doc --> 028 * An implementation of the model object '<em><b>Type Reference</b></em>'. 029 * <!-- end-user-doc --> 030 * <p> 031 * The following features are implemented: 032 * </p> 033 * <ul> 034 * <li>{@link de.dentrassi.varlink.idl.varlinkIdl.impl.TypeReferenceImpl#getName <em>Name</em>}</li> 035 * </ul> 036 * 037 * @generated 038 */ 039public class TypeReferenceImpl extends ElementTypeImpl implements TypeReference 040{ 041 /** 042 * The cached value of the '{@link #getName() <em>Name</em>}' reference. 043 * <!-- begin-user-doc --> 044 * <!-- end-user-doc --> 045 * @see #getName() 046 * @generated 047 * @ordered 048 */ 049 protected TypeAlias name; 050 051 /** 052 * <!-- begin-user-doc --> 053 * <!-- end-user-doc --> 054 * @generated 055 */ 056 protected TypeReferenceImpl() 057 { 058 super(); 059 } 060 061 /** 062 * <!-- begin-user-doc --> 063 * <!-- end-user-doc --> 064 * @generated 065 */ 066 @Override 067 protected EClass eStaticClass() 068 { 069 return VarlinkIdlPackage.Literals.TYPE_REFERENCE; 070 } 071 072 /** 073 * <!-- begin-user-doc --> 074 * <!-- end-user-doc --> 075 * @generated 076 */ 077 public TypeAlias getName() 078 { 079 if (name != null && name.eIsProxy()) 080 { 081 InternalEObject oldName = (InternalEObject)name; 082 name = (TypeAlias)eResolveProxy(oldName); 083 if (name != oldName) 084 { 085 if (eNotificationRequired()) 086 eNotify(new ENotificationImpl(this, Notification.RESOLVE, VarlinkIdlPackage.TYPE_REFERENCE__NAME, oldName, name)); 087 } 088 } 089 return name; 090 } 091 092 /** 093 * <!-- begin-user-doc --> 094 * <!-- end-user-doc --> 095 * @generated 096 */ 097 public TypeAlias basicGetName() 098 { 099 return name; 100 } 101 102 /** 103 * <!-- begin-user-doc --> 104 * <!-- end-user-doc --> 105 * @generated 106 */ 107 public void setName(TypeAlias newName) 108 { 109 TypeAlias oldName = name; 110 name = newName; 111 if (eNotificationRequired()) 112 eNotify(new ENotificationImpl(this, Notification.SET, VarlinkIdlPackage.TYPE_REFERENCE__NAME, oldName, name)); 113 } 114 115 /** 116 * <!-- begin-user-doc --> 117 * <!-- end-user-doc --> 118 * @generated 119 */ 120 @Override 121 public Object eGet(int featureID, boolean resolve, boolean coreType) 122 { 123 switch (featureID) 124 { 125 case VarlinkIdlPackage.TYPE_REFERENCE__NAME: 126 if (resolve) return getName(); 127 return basicGetName(); 128 } 129 return super.eGet(featureID, resolve, coreType); 130 } 131 132 /** 133 * <!-- begin-user-doc --> 134 * <!-- end-user-doc --> 135 * @generated 136 */ 137 @Override 138 public void eSet(int featureID, Object newValue) 139 { 140 switch (featureID) 141 { 142 case VarlinkIdlPackage.TYPE_REFERENCE__NAME: 143 setName((TypeAlias)newValue); 144 return; 145 } 146 super.eSet(featureID, newValue); 147 } 148 149 /** 150 * <!-- begin-user-doc --> 151 * <!-- end-user-doc --> 152 * @generated 153 */ 154 @Override 155 public void eUnset(int featureID) 156 { 157 switch (featureID) 158 { 159 case VarlinkIdlPackage.TYPE_REFERENCE__NAME: 160 setName((TypeAlias)null); 161 return; 162 } 163 super.eUnset(featureID); 164 } 165 166 /** 167 * <!-- begin-user-doc --> 168 * <!-- end-user-doc --> 169 * @generated 170 */ 171 @Override 172 public boolean eIsSet(int featureID) 173 { 174 switch (featureID) 175 { 176 case VarlinkIdlPackage.TYPE_REFERENCE__NAME: 177 return name != null; 178 } 179 return super.eIsSet(featureID); 180 } 181 182} //TypeReferenceImpl