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.Field; 016import de.dentrassi.varlink.idl.varlinkIdl.VarlinkIdlPackage; 017 018import java.util.Collection; 019 020import org.eclipse.emf.common.notify.NotificationChain; 021 022import org.eclipse.emf.common.util.EList; 023 024import org.eclipse.emf.ecore.EClass; 025import org.eclipse.emf.ecore.InternalEObject; 026 027import org.eclipse.emf.ecore.util.EObjectContainmentEList; 028import org.eclipse.emf.ecore.util.InternalEList; 029 030/** 031 * <!-- begin-user-doc --> 032 * An implementation of the model object '<em><b>Object</b></em>'. 033 * <!-- end-user-doc --> 034 * <p> 035 * The following features are implemented: 036 * </p> 037 * <ul> 038 * <li>{@link de.dentrassi.varlink.idl.varlinkIdl.impl.ObjectImpl#getFields <em>Fields</em>}</li> 039 * </ul> 040 * 041 * @generated 042 */ 043public class ObjectImpl extends TypeAliasDefinitionImpl implements de.dentrassi.varlink.idl.varlinkIdl.Object 044{ 045 /** 046 * The cached value of the '{@link #getFields() <em>Fields</em>}' containment reference list. 047 * <!-- begin-user-doc --> 048 * <!-- end-user-doc --> 049 * @see #getFields() 050 * @generated 051 * @ordered 052 */ 053 protected EList<Field> fields; 054 055 /** 056 * <!-- begin-user-doc --> 057 * <!-- end-user-doc --> 058 * @generated 059 */ 060 protected ObjectImpl() 061 { 062 super(); 063 } 064 065 /** 066 * <!-- begin-user-doc --> 067 * <!-- end-user-doc --> 068 * @generated 069 */ 070 @Override 071 protected EClass eStaticClass() 072 { 073 return VarlinkIdlPackage.Literals.OBJECT; 074 } 075 076 /** 077 * <!-- begin-user-doc --> 078 * <!-- end-user-doc --> 079 * @generated 080 */ 081 public EList<Field> getFields() 082 { 083 if (fields == null) 084 { 085 fields = new EObjectContainmentEList<Field>(Field.class, this, VarlinkIdlPackage.OBJECT__FIELDS); 086 } 087 return fields; 088 } 089 090 /** 091 * <!-- begin-user-doc --> 092 * <!-- end-user-doc --> 093 * @generated 094 */ 095 @Override 096 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) 097 { 098 switch (featureID) 099 { 100 case VarlinkIdlPackage.OBJECT__FIELDS: 101 return ((InternalEList<?>)getFields()).basicRemove(otherEnd, msgs); 102 } 103 return super.eInverseRemove(otherEnd, featureID, msgs); 104 } 105 106 /** 107 * <!-- begin-user-doc --> 108 * <!-- end-user-doc --> 109 * @generated 110 */ 111 @Override 112 public Object eGet(int featureID, boolean resolve, boolean coreType) 113 { 114 switch (featureID) 115 { 116 case VarlinkIdlPackage.OBJECT__FIELDS: 117 return getFields(); 118 } 119 return super.eGet(featureID, resolve, coreType); 120 } 121 122 /** 123 * <!-- begin-user-doc --> 124 * <!-- end-user-doc --> 125 * @generated 126 */ 127 @SuppressWarnings("unchecked") 128 @Override 129 public void eSet(int featureID, Object newValue) 130 { 131 switch (featureID) 132 { 133 case VarlinkIdlPackage.OBJECT__FIELDS: 134 getFields().clear(); 135 getFields().addAll((Collection<? extends Field>)newValue); 136 return; 137 } 138 super.eSet(featureID, newValue); 139 } 140 141 /** 142 * <!-- begin-user-doc --> 143 * <!-- end-user-doc --> 144 * @generated 145 */ 146 @Override 147 public void eUnset(int featureID) 148 { 149 switch (featureID) 150 { 151 case VarlinkIdlPackage.OBJECT__FIELDS: 152 getFields().clear(); 153 return; 154 } 155 super.eUnset(featureID); 156 } 157 158 /** 159 * <!-- begin-user-doc --> 160 * <!-- end-user-doc --> 161 * @generated 162 */ 163 @Override 164 public boolean eIsSet(int featureID) 165 { 166 switch (featureID) 167 { 168 case VarlinkIdlPackage.OBJECT__FIELDS: 169 return fields != null && !fields.isEmpty(); 170 } 171 return super.eIsSet(featureID); 172 } 173 174} //ObjectImpl