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.Interface; 016import de.dentrassi.varlink.idl.varlinkIdl.Member; 017import de.dentrassi.varlink.idl.varlinkIdl.VarlinkIdlPackage; 018 019import java.util.Collection; 020 021import org.eclipse.emf.common.notify.Notification; 022import org.eclipse.emf.common.notify.NotificationChain; 023 024import org.eclipse.emf.common.util.EList; 025 026import org.eclipse.emf.ecore.EClass; 027import org.eclipse.emf.ecore.InternalEObject; 028 029import org.eclipse.emf.ecore.impl.ENotificationImpl; 030import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; 031 032import org.eclipse.emf.ecore.util.EObjectContainmentEList; 033import org.eclipse.emf.ecore.util.InternalEList; 034 035/** 036 * <!-- begin-user-doc --> 037 * An implementation of the model object '<em><b>Interface</b></em>'. 038 * <!-- end-user-doc --> 039 * <p> 040 * The following features are implemented: 041 * </p> 042 * <ul> 043 * <li>{@link de.dentrassi.varlink.idl.varlinkIdl.impl.InterfaceImpl#getName <em>Name</em>}</li> 044 * <li>{@link de.dentrassi.varlink.idl.varlinkIdl.impl.InterfaceImpl#getMembers <em>Members</em>}</li> 045 * </ul> 046 * 047 * @generated 048 */ 049public class InterfaceImpl extends MinimalEObjectImpl.Container implements Interface 050{ 051 /** 052 * The default value of the '{@link #getName() <em>Name</em>}' attribute. 053 * <!-- begin-user-doc --> 054 * <!-- end-user-doc --> 055 * @see #getName() 056 * @generated 057 * @ordered 058 */ 059 protected static final String NAME_EDEFAULT = null; 060 061 /** 062 * The cached value of the '{@link #getName() <em>Name</em>}' attribute. 063 * <!-- begin-user-doc --> 064 * <!-- end-user-doc --> 065 * @see #getName() 066 * @generated 067 * @ordered 068 */ 069 protected String name = NAME_EDEFAULT; 070 071 /** 072 * The cached value of the '{@link #getMembers() <em>Members</em>}' containment reference list. 073 * <!-- begin-user-doc --> 074 * <!-- end-user-doc --> 075 * @see #getMembers() 076 * @generated 077 * @ordered 078 */ 079 protected EList<Member> members; 080 081 /** 082 * <!-- begin-user-doc --> 083 * <!-- end-user-doc --> 084 * @generated 085 */ 086 protected InterfaceImpl() 087 { 088 super(); 089 } 090 091 /** 092 * <!-- begin-user-doc --> 093 * <!-- end-user-doc --> 094 * @generated 095 */ 096 @Override 097 protected EClass eStaticClass() 098 { 099 return VarlinkIdlPackage.Literals.INTERFACE; 100 } 101 102 /** 103 * <!-- begin-user-doc --> 104 * <!-- end-user-doc --> 105 * @generated 106 */ 107 public String getName() 108 { 109 return name; 110 } 111 112 /** 113 * <!-- begin-user-doc --> 114 * <!-- end-user-doc --> 115 * @generated 116 */ 117 public void setName(String newName) 118 { 119 String oldName = name; 120 name = newName; 121 if (eNotificationRequired()) 122 eNotify(new ENotificationImpl(this, Notification.SET, VarlinkIdlPackage.INTERFACE__NAME, oldName, name)); 123 } 124 125 /** 126 * <!-- begin-user-doc --> 127 * <!-- end-user-doc --> 128 * @generated 129 */ 130 public EList<Member> getMembers() 131 { 132 if (members == null) 133 { 134 members = new EObjectContainmentEList<Member>(Member.class, this, VarlinkIdlPackage.INTERFACE__MEMBERS); 135 } 136 return members; 137 } 138 139 /** 140 * <!-- begin-user-doc --> 141 * <!-- end-user-doc --> 142 * @generated 143 */ 144 @Override 145 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) 146 { 147 switch (featureID) 148 { 149 case VarlinkIdlPackage.INTERFACE__MEMBERS: 150 return ((InternalEList<?>)getMembers()).basicRemove(otherEnd, msgs); 151 } 152 return super.eInverseRemove(otherEnd, featureID, msgs); 153 } 154 155 /** 156 * <!-- begin-user-doc --> 157 * <!-- end-user-doc --> 158 * @generated 159 */ 160 @Override 161 public Object eGet(int featureID, boolean resolve, boolean coreType) 162 { 163 switch (featureID) 164 { 165 case VarlinkIdlPackage.INTERFACE__NAME: 166 return getName(); 167 case VarlinkIdlPackage.INTERFACE__MEMBERS: 168 return getMembers(); 169 } 170 return super.eGet(featureID, resolve, coreType); 171 } 172 173 /** 174 * <!-- begin-user-doc --> 175 * <!-- end-user-doc --> 176 * @generated 177 */ 178 @SuppressWarnings("unchecked") 179 @Override 180 public void eSet(int featureID, Object newValue) 181 { 182 switch (featureID) 183 { 184 case VarlinkIdlPackage.INTERFACE__NAME: 185 setName((String)newValue); 186 return; 187 case VarlinkIdlPackage.INTERFACE__MEMBERS: 188 getMembers().clear(); 189 getMembers().addAll((Collection<? extends Member>)newValue); 190 return; 191 } 192 super.eSet(featureID, newValue); 193 } 194 195 /** 196 * <!-- begin-user-doc --> 197 * <!-- end-user-doc --> 198 * @generated 199 */ 200 @Override 201 public void eUnset(int featureID) 202 { 203 switch (featureID) 204 { 205 case VarlinkIdlPackage.INTERFACE__NAME: 206 setName(NAME_EDEFAULT); 207 return; 208 case VarlinkIdlPackage.INTERFACE__MEMBERS: 209 getMembers().clear(); 210 return; 211 } 212 super.eUnset(featureID); 213 } 214 215 /** 216 * <!-- begin-user-doc --> 217 * <!-- end-user-doc --> 218 * @generated 219 */ 220 @Override 221 public boolean eIsSet(int featureID) 222 { 223 switch (featureID) 224 { 225 case VarlinkIdlPackage.INTERFACE__NAME: 226 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); 227 case VarlinkIdlPackage.INTERFACE__MEMBERS: 228 return members != null && !members.isEmpty(); 229 } 230 return super.eIsSet(featureID); 231 } 232 233 /** 234 * <!-- begin-user-doc --> 235 * <!-- end-user-doc --> 236 * @generated 237 */ 238 @Override 239 public String toString() 240 { 241 if (eIsProxy()) return super.toString(); 242 243 StringBuffer result = new StringBuffer(super.toString()); 244 result.append(" (name: "); 245 result.append(name); 246 result.append(')'); 247 return result.toString(); 248 } 249 250} //InterfaceImpl