/** * <copyright> * </copyright> * * $Id$ */ package org.eclipse.gmf.codegen.gmfgen.impl; import java.util.ArrayList; import java.util.Collection; import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.common.util.BasicEList; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.EObjectImpl; import org.eclipse.emf.ecore.util.EDataTypeUniqueEList; import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage; import org.eclipse.gmf.codegen.gmfgen.GenCustomPropertyTab; import org.eclipse.gmf.codegen.gmfgen.GenNavigator; import org.eclipse.gmf.codegen.gmfgen.GeneratedType; import org.eclipse.gmf.codegen.gmfgen.TypeTabFilter; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>Type Tab Filter</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.TypeTabFilterImpl#getTab <em>Tab</em>}</li> * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.TypeTabFilterImpl#getTypes <em>Types</em>}</li> * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.TypeTabFilterImpl#getGeneratedTypes <em>Generated Types</em>}</li> * </ul> * </p> * * @generated */ public class TypeTabFilterImpl extends EObjectImpl implements TypeTabFilter { /** * The cached value of the '{@link #getTypes() <em>Types</em>}' attribute list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getTypes() * @generated * @ordered */ protected EList<String> types; /** * The cached value of the '{@link #getGeneratedTypes() <em>Generated Types</em>}' attribute list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getGeneratedTypes() * @generated * @ordered */ protected EList<GeneratedType> generatedTypes; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected TypeTabFilterImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return GMFGenPackage.eINSTANCE.getTypeTabFilter(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public GenCustomPropertyTab getTab() { if (eContainerFeatureID() != GMFGenPackage.TYPE_TAB_FILTER__TAB) return null; return (GenCustomPropertyTab)eInternalContainer(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<String> getTypes() { if (types == null) { types = new EDataTypeUniqueEList<String>(String.class, this, GMFGenPackage.TYPE_TAB_FILTER__TYPES); } return types; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<GeneratedType> getGeneratedTypes() { if (generatedTypes == null) { generatedTypes = new EDataTypeUniqueEList<GeneratedType>(GeneratedType.class, this, GMFGenPackage.TYPE_TAB_FILTER__GENERATED_TYPES); } return generatedTypes; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated NOT */ public EList<String> getAllTypes() { ArrayList<String> result = new ArrayList<String>(); result.addAll(getTypes()); if (getGeneratedTypes().size() > 0) { for (GeneratedType nextGeneratedType : getGeneratedTypes()) { if (getTab() != null && getTab().getSheet() != null && getTab().getSheet().getEditorGen() != null && nextGeneratedType == GeneratedType.ABSTRACT_NAVIGATOR_ITEM_LITERAL) { GenNavigator navigator = getTab().getSheet().getEditorGen().getNavigator(); if (navigator != null) { result.add(navigator.getAbstractNavigatorItemQualifiedClassName()); } } } } return new BasicEList.UnmodifiableEList<String>(result.size(), result.toArray()); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case GMFGenPackage.TYPE_TAB_FILTER__TAB: if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); return eBasicSetContainer(otherEnd, GMFGenPackage.TYPE_TAB_FILTER__TAB, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case GMFGenPackage.TYPE_TAB_FILTER__TAB: return eBasicSetContainer(null, GMFGenPackage.TYPE_TAB_FILTER__TAB, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { switch (eContainerFeatureID()) { case GMFGenPackage.TYPE_TAB_FILTER__TAB: return eInternalContainer().eInverseRemove(this, GMFGenPackage.GEN_CUSTOM_PROPERTY_TAB__FILTER, GenCustomPropertyTab.class, msgs); } return super.eBasicRemoveFromContainerFeature(msgs); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case GMFGenPackage.TYPE_TAB_FILTER__TAB: return getTab(); case GMFGenPackage.TYPE_TAB_FILTER__TYPES: return getTypes(); case GMFGenPackage.TYPE_TAB_FILTER__GENERATED_TYPES: return getGeneratedTypes(); } return super.eGet(featureID, resolve, coreType); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case GMFGenPackage.TYPE_TAB_FILTER__TYPES: getTypes().clear(); getTypes().addAll((Collection<? extends String>)newValue); return; case GMFGenPackage.TYPE_TAB_FILTER__GENERATED_TYPES: getGeneratedTypes().clear(); getGeneratedTypes().addAll((Collection<? extends GeneratedType>)newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case GMFGenPackage.TYPE_TAB_FILTER__TYPES: getTypes().clear(); return; case GMFGenPackage.TYPE_TAB_FILTER__GENERATED_TYPES: getGeneratedTypes().clear(); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case GMFGenPackage.TYPE_TAB_FILTER__TAB: return getTab() != null; case GMFGenPackage.TYPE_TAB_FILTER__TYPES: return types != null && !types.isEmpty(); case GMFGenPackage.TYPE_TAB_FILTER__GENERATED_TYPES: return generatedTypes != null && !generatedTypes.isEmpty(); } return super.eIsSet(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public String toString() { if (eIsProxy()) return super.toString(); StringBuffer result = new StringBuffer(super.toString()); result.append(" (types: "); result.append(types); result.append(", generatedTypes: "); result.append(generatedTypes); result.append(')'); return result.toString(); } } //TypeTabFilterImpl