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