| /******************************************************************************* |
| * Copyright (c) 2001, 2006 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jem.internal.beaninfo.impl; |
| /* |
| |
| |
| */ |
| |
| |
| import java.util.Collection; |
| |
| import org.eclipse.emf.common.notify.Notification; |
| import org.eclipse.emf.common.notify.NotificationChain; |
| import org.eclipse.emf.common.util.EMap; |
| |
| import org.eclipse.emf.ecore.EClass; |
| import org.eclipse.emf.ecore.EModelElement; |
| import org.eclipse.emf.ecore.ENamedElement; |
| import org.eclipse.emf.ecore.EStructuralFeature; |
| import org.eclipse.emf.ecore.EcorePackage; |
| import org.eclipse.emf.ecore.InternalEObject; |
| import org.eclipse.emf.ecore.impl.EAnnotationImpl; |
| import org.eclipse.emf.ecore.impl.ENotificationImpl; |
| import org.eclipse.emf.ecore.util.EcoreEMap; |
| import org.eclipse.emf.ecore.util.InternalEList; |
| |
| import org.eclipse.jem.internal.beaninfo.BeaninfoPackage; |
| import org.eclipse.jem.internal.beaninfo.FeatureDecorator; |
| import org.eclipse.jem.internal.beaninfo.ImplicitItem; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * An implementation of the model object '<em><b>Feature Decorator</b></em>'. |
| * <!-- end-user-doc --> |
| * <p> |
| * The following features are implemented: |
| * <ul> |
| * <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl#getDisplayName <em>Display Name</em>}</li> |
| * <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl#getShortDescription <em>Short Description</em>}</li> |
| * <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl#getCategory <em>Category</em>}</li> |
| * <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl#isExpert <em>Expert</em>}</li> |
| * <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl#isHidden <em>Hidden</em>}</li> |
| * <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl#isPreferred <em>Preferred</em>}</li> |
| * <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl#isMergeIntrospection <em>Merge Introspection</em>}</li> |
| * <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl#isAttributesExplicitEmpty <em>Attributes Explicit Empty</em>}</li> |
| * <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl#getImplicitlySetBits <em>Implicitly Set Bits</em>}</li> |
| * <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl#getImplicitDecoratorFlag <em>Implicit Decorator Flag</em>}</li> |
| * <li>{@link org.eclipse.jem.internal.beaninfo.impl.FeatureDecoratorImpl#getAttributes <em>Attributes</em>}</li> |
| * </ul> |
| * </p> |
| * |
| * @generated |
| */ |
| public class FeatureDecoratorImpl extends EAnnotationImpl implements FeatureDecorator{ |
| |
| /** |
| * Bits for implicitly set features. This is internal, not meant for clients. |
| * Note: To make it easier to make changes Feature goes from high bits down, while the |
| * subclasses go from low-bits up. That way if a change is made to add something of |
| * interest to Feature, all of the subclasses don't need to have their bits re-ordered. |
| * Since these are bits, it doesn't matter which ones to use. |
| */ |
| public static final long FEATURE_DISPLAYNAME_IMPLICIT = 0x8000000000000000L; |
| public static final long FEATURE_SHORTDESC_IMPLICIT = 0x4000000000000000L; |
| public static final long FEATURE_CATEGORY_IMPLICIT = 0x2000000000000000L; |
| public static final long FEATURE_EXPERT_IMPLICIT = 0x1000000000000000L; |
| public static final long FEATURE_HIDDEN_IMPLICIT = 0x800000000000000L; |
| public static final long FEATURE_PREFERRED_IMPLICIT = 0x400000000000000L; |
| public static final long FEATURE_ATTRIBUTES_IMPLICIT = 0x200000000000000L; |
| |
| /** |
| * The default value of the '{@link #getDisplayName() <em>Display Name</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getDisplayName() |
| * @generated |
| * @ordered |
| */ |
| protected static final String DISPLAY_NAME_EDEFAULT = null; |
| |
| |
| /** |
| * The cached value of the '{@link #getDisplayName() <em>Display Name</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getDisplayName() |
| * @generated |
| * @ordered |
| */ |
| protected String displayName = DISPLAY_NAME_EDEFAULT; |
| /** |
| * The flag representing whether the Display Name attribute has been set. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| * @ordered |
| */ |
| protected static final int DISPLAY_NAME_ESETFLAG = 1 << 8; |
| |
| /** |
| * The default value of the '{@link #getShortDescription() <em>Short Description</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getShortDescription() |
| * @generated |
| * @ordered |
| */ |
| protected static final String SHORT_DESCRIPTION_EDEFAULT = null; |
| |
| /** |
| * The cached value of the '{@link #getShortDescription() <em>Short Description</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getShortDescription() |
| * @generated |
| * @ordered |
| */ |
| protected String shortDescription = SHORT_DESCRIPTION_EDEFAULT; |
| /** |
| * The flag representing whether the Short Description attribute has been set. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| * @ordered |
| */ |
| protected static final int SHORT_DESCRIPTION_ESETFLAG = 1 << 9; |
| |
| /** |
| * The default value of the '{@link #getCategory() <em>Category</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getCategory() |
| * @generated |
| * @ordered |
| */ |
| protected static final String CATEGORY_EDEFAULT = null; |
| |
| /** |
| * The cached value of the '{@link #getCategory() <em>Category</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getCategory() |
| * @generated |
| * @ordered |
| */ |
| protected String category = CATEGORY_EDEFAULT; |
| /** |
| * The default value of the '{@link #isExpert() <em>Expert</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #isExpert() |
| * @generated |
| * @ordered |
| */ |
| protected static final boolean EXPERT_EDEFAULT = false; |
| |
| /** |
| * The flag representing the value of the '{@link #isExpert() <em>Expert</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #isExpert() |
| * @generated |
| * @ordered |
| */ |
| protected static final int EXPERT_EFLAG = 1 << 10; |
| |
| /** |
| * The flag representing whether the Expert attribute has been set. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| * @ordered |
| */ |
| protected static final int EXPERT_ESETFLAG = 1 << 11; |
| |
| /** |
| * The default value of the '{@link #isHidden() <em>Hidden</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #isHidden() |
| * @generated |
| * @ordered |
| */ |
| protected static final boolean HIDDEN_EDEFAULT = false; |
| |
| /** |
| * The flag representing the value of the '{@link #isHidden() <em>Hidden</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #isHidden() |
| * @generated |
| * @ordered |
| */ |
| protected static final int HIDDEN_EFLAG = 1 << 12; |
| |
| /** |
| * The flag representing whether the Hidden attribute has been set. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| * @ordered |
| */ |
| protected static final int HIDDEN_ESETFLAG = 1 << 13; |
| |
| /** |
| * The default value of the '{@link #isPreferred() <em>Preferred</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #isPreferred() |
| * @generated |
| * @ordered |
| */ |
| protected static final boolean PREFERRED_EDEFAULT = false; |
| |
| /** |
| * The flag representing the value of the '{@link #isPreferred() <em>Preferred</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #isPreferred() |
| * @generated |
| * @ordered |
| */ |
| protected static final int PREFERRED_EFLAG = 1 << 14; |
| |
| /** |
| * The flag representing whether the Preferred attribute has been set. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| * @ordered |
| */ |
| protected static final int PREFERRED_ESETFLAG = 1 << 15; |
| |
| /** |
| * The default value of the '{@link #isMergeIntrospection() <em>Merge Introspection</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #isMergeIntrospection() |
| * @generated |
| * @ordered |
| */ |
| protected static final boolean MERGE_INTROSPECTION_EDEFAULT = true; |
| |
| /** |
| * The flag representing the value of the '{@link #isMergeIntrospection() <em>Merge Introspection</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #isMergeIntrospection() |
| * @generated |
| * @ordered |
| */ |
| protected static final int MERGE_INTROSPECTION_EFLAG = 1 << 16; |
| |
| /** |
| * The default value of the '{@link #isAttributesExplicitEmpty() <em>Attributes Explicit Empty</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #isAttributesExplicitEmpty() |
| * @generated |
| * @ordered |
| */ |
| protected static final boolean ATTRIBUTES_EXPLICIT_EMPTY_EDEFAULT = false; |
| |
| /** |
| * The flag representing the value of the '{@link #isAttributesExplicitEmpty() <em>Attributes Explicit Empty</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #isAttributesExplicitEmpty() |
| * @generated |
| * @ordered |
| */ |
| protected static final int ATTRIBUTES_EXPLICIT_EMPTY_EFLAG = 1 << 17; |
| |
| /** |
| * The default value of the '{@link #getImplicitlySetBits() <em>Implicitly Set Bits</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getImplicitlySetBits() |
| * @generated |
| * @ordered |
| */ |
| protected static final long IMPLICITLY_SET_BITS_EDEFAULT = 0L; |
| |
| /** |
| * The cached value of the '{@link #getImplicitlySetBits() <em>Implicitly Set Bits</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getImplicitlySetBits() |
| * @generated |
| * @ordered |
| */ |
| protected long implicitlySetBits = IMPLICITLY_SET_BITS_EDEFAULT; |
| |
| /** |
| * The default value of the '{@link #getImplicitDecoratorFlag() <em>Implicit Decorator Flag</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getImplicitDecoratorFlag() |
| * @generated |
| * @ordered |
| */ |
| protected static final ImplicitItem IMPLICIT_DECORATOR_FLAG_EDEFAULT = ImplicitItem.NOT_IMPLICIT_LITERAL; |
| |
| /** |
| * The cached value of the '{@link #getImplicitDecoratorFlag() <em>Implicit Decorator Flag</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getImplicitDecoratorFlag() |
| * @generated |
| * @ordered |
| */ |
| protected ImplicitItem implicitDecoratorFlag = IMPLICIT_DECORATOR_FLAG_EDEFAULT; |
| |
| /** |
| * The cached value of the '{@link #getAttributes() <em>Attributes</em>}' map. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @see #getAttributes() |
| * @generated |
| * @ordered |
| */ |
| protected EMap attributes = null; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected FeatureDecoratorImpl() { |
| super(); |
| eFlags |= MERGE_INTROSPECTION_EFLAG; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected EClass eStaticClass() { |
| return BeaninfoPackage.eINSTANCE.getFeatureDecorator(); |
| } |
| |
| public String getDisplayName() { |
| return isSetDisplayName() ? getDisplayNameGen() : getName(); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public String getDisplayNameGen() { |
| return displayName; |
| } |
| |
| public String getName() { |
| ENamedElement ne = (ENamedElement) getEModelElement(); |
| if (ne != null) |
| return ne.getName(); // The name from the owner of the feature has to be the name of feature. |
| else |
| return "?"; // Don't know what it is. //$NON-NLS-1$ |
| } |
| |
| |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setDisplayName(String newDisplayName) { |
| String oldDisplayName = displayName; |
| displayName = newDisplayName; |
| boolean oldDisplayNameESet = (eFlags & DISPLAY_NAME_ESETFLAG) != 0; |
| eFlags |= DISPLAY_NAME_ESETFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_DECORATOR__DISPLAY_NAME, oldDisplayName, displayName, !oldDisplayNameESet)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void unsetDisplayName() { |
| String oldDisplayName = displayName; |
| boolean oldDisplayNameESet = (eFlags & DISPLAY_NAME_ESETFLAG) != 0; |
| displayName = DISPLAY_NAME_EDEFAULT; |
| eFlags &= ~DISPLAY_NAME_ESETFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.UNSET, BeaninfoPackage.FEATURE_DECORATOR__DISPLAY_NAME, oldDisplayName, DISPLAY_NAME_EDEFAULT, oldDisplayNameESet)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean isSetDisplayName() { |
| return (eFlags & DISPLAY_NAME_ESETFLAG) != 0; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public String getShortDescription() { |
| return shortDescription; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setShortDescription(String newShortDescription) { |
| String oldShortDescription = shortDescription; |
| shortDescription = newShortDescription; |
| boolean oldShortDescriptionESet = (eFlags & SHORT_DESCRIPTION_ESETFLAG) != 0; |
| eFlags |= SHORT_DESCRIPTION_ESETFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_DECORATOR__SHORT_DESCRIPTION, oldShortDescription, shortDescription, !oldShortDescriptionESet)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void unsetShortDescription() { |
| String oldShortDescription = shortDescription; |
| boolean oldShortDescriptionESet = (eFlags & SHORT_DESCRIPTION_ESETFLAG) != 0; |
| shortDescription = SHORT_DESCRIPTION_EDEFAULT; |
| eFlags &= ~SHORT_DESCRIPTION_ESETFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.UNSET, BeaninfoPackage.FEATURE_DECORATOR__SHORT_DESCRIPTION, oldShortDescription, SHORT_DESCRIPTION_EDEFAULT, oldShortDescriptionESet)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean isSetShortDescription() { |
| return (eFlags & SHORT_DESCRIPTION_ESETFLAG) != 0; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public String getCategory() { |
| return category; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setCategory(String newCategory) { |
| String oldCategory = category; |
| category = newCategory; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_DECORATOR__CATEGORY, oldCategory, category)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean isExpert() { |
| return (eFlags & EXPERT_EFLAG) != 0; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setExpert(boolean newExpert) { |
| boolean oldExpert = (eFlags & EXPERT_EFLAG) != 0; |
| if (newExpert) eFlags |= EXPERT_EFLAG; else eFlags &= ~EXPERT_EFLAG; |
| boolean oldExpertESet = (eFlags & EXPERT_ESETFLAG) != 0; |
| eFlags |= EXPERT_ESETFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_DECORATOR__EXPERT, oldExpert, newExpert, !oldExpertESet)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void unsetExpert() { |
| boolean oldExpert = (eFlags & EXPERT_EFLAG) != 0; |
| boolean oldExpertESet = (eFlags & EXPERT_ESETFLAG) != 0; |
| if (EXPERT_EDEFAULT) eFlags |= EXPERT_EFLAG; else eFlags &= ~EXPERT_EFLAG; |
| eFlags &= ~EXPERT_ESETFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.UNSET, BeaninfoPackage.FEATURE_DECORATOR__EXPERT, oldExpert, EXPERT_EDEFAULT, oldExpertESet)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean isSetExpert() { |
| return (eFlags & EXPERT_ESETFLAG) != 0; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean isHidden() { |
| return (eFlags & HIDDEN_EFLAG) != 0; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setHidden(boolean newHidden) { |
| boolean oldHidden = (eFlags & HIDDEN_EFLAG) != 0; |
| if (newHidden) eFlags |= HIDDEN_EFLAG; else eFlags &= ~HIDDEN_EFLAG; |
| boolean oldHiddenESet = (eFlags & HIDDEN_ESETFLAG) != 0; |
| eFlags |= HIDDEN_ESETFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_DECORATOR__HIDDEN, oldHidden, newHidden, !oldHiddenESet)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void unsetHidden() { |
| boolean oldHidden = (eFlags & HIDDEN_EFLAG) != 0; |
| boolean oldHiddenESet = (eFlags & HIDDEN_ESETFLAG) != 0; |
| if (HIDDEN_EDEFAULT) eFlags |= HIDDEN_EFLAG; else eFlags &= ~HIDDEN_EFLAG; |
| eFlags &= ~HIDDEN_ESETFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.UNSET, BeaninfoPackage.FEATURE_DECORATOR__HIDDEN, oldHidden, HIDDEN_EDEFAULT, oldHiddenESet)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean isSetHidden() { |
| return (eFlags & HIDDEN_ESETFLAG) != 0; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean isPreferred() { |
| return (eFlags & PREFERRED_EFLAG) != 0; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setPreferred(boolean newPreferred) { |
| boolean oldPreferred = (eFlags & PREFERRED_EFLAG) != 0; |
| if (newPreferred) eFlags |= PREFERRED_EFLAG; else eFlags &= ~PREFERRED_EFLAG; |
| boolean oldPreferredESet = (eFlags & PREFERRED_ESETFLAG) != 0; |
| eFlags |= PREFERRED_ESETFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_DECORATOR__PREFERRED, oldPreferred, newPreferred, !oldPreferredESet)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void unsetPreferred() { |
| boolean oldPreferred = (eFlags & PREFERRED_EFLAG) != 0; |
| boolean oldPreferredESet = (eFlags & PREFERRED_ESETFLAG) != 0; |
| if (PREFERRED_EDEFAULT) eFlags |= PREFERRED_EFLAG; else eFlags &= ~PREFERRED_EFLAG; |
| eFlags &= ~PREFERRED_ESETFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.UNSET, BeaninfoPackage.FEATURE_DECORATOR__PREFERRED, oldPreferred, PREFERRED_EDEFAULT, oldPreferredESet)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean isSetPreferred() { |
| return (eFlags & PREFERRED_ESETFLAG) != 0; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean isMergeIntrospection() { |
| return (eFlags & MERGE_INTROSPECTION_EFLAG) != 0; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setMergeIntrospection(boolean newMergeIntrospection) { |
| boolean oldMergeIntrospection = (eFlags & MERGE_INTROSPECTION_EFLAG) != 0; |
| if (newMergeIntrospection) eFlags |= MERGE_INTROSPECTION_EFLAG; else eFlags &= ~MERGE_INTROSPECTION_EFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_DECORATOR__MERGE_INTROSPECTION, oldMergeIntrospection, newMergeIntrospection)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean isAttributesExplicitEmpty() { |
| return (eFlags & ATTRIBUTES_EXPLICIT_EMPTY_EFLAG) != 0; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setAttributesExplicitEmpty(boolean newAttributesExplicitEmpty) { |
| boolean oldAttributesExplicitEmpty = (eFlags & ATTRIBUTES_EXPLICIT_EMPTY_EFLAG) != 0; |
| if (newAttributesExplicitEmpty) eFlags |= ATTRIBUTES_EXPLICIT_EMPTY_EFLAG; else eFlags &= ~ATTRIBUTES_EXPLICIT_EMPTY_EFLAG; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY, oldAttributesExplicitEmpty, newAttributesExplicitEmpty)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public long getImplicitlySetBits() { |
| return implicitlySetBits; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setImplicitlySetBits(long newImplicitlySetBits) { |
| long oldImplicitlySetBits = implicitlySetBits; |
| implicitlySetBits = newImplicitlySetBits; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_DECORATOR__IMPLICITLY_SET_BITS, oldImplicitlySetBits, implicitlySetBits)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public ImplicitItem getImplicitDecoratorFlag() { |
| return implicitDecoratorFlag; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void setImplicitDecoratorFlag(ImplicitItem newImplicitDecoratorFlag) { |
| ImplicitItem oldImplicitDecoratorFlag = implicitDecoratorFlag; |
| implicitDecoratorFlag = newImplicitDecoratorFlag == null ? IMPLICIT_DECORATOR_FLAG_EDEFAULT : newImplicitDecoratorFlag; |
| if (eNotificationRequired()) |
| eNotify(new ENotificationImpl(this, Notification.SET, BeaninfoPackage.FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG, oldImplicitDecoratorFlag, implicitDecoratorFlag)); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public EMap getAttributes() { |
| if (attributes == null) { |
| attributes = new EcoreEMap(BeaninfoPackage.eINSTANCE.getFeatureAttributeMapEntry(), FeatureAttributeMapEntryImpl.class, this, BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES); |
| } |
| return attributes; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public String toString() { |
| if (eIsProxy()) return super.toString(); |
| |
| StringBuffer result = new StringBuffer(super.toString()); |
| result.append(" (displayName: "); |
| if ((eFlags & DISPLAY_NAME_ESETFLAG) != 0) result.append(displayName); else result.append("<unset>"); |
| result.append(", shortDescription: "); |
| if ((eFlags & SHORT_DESCRIPTION_ESETFLAG) != 0) result.append(shortDescription); else result.append("<unset>"); |
| result.append(", category: "); |
| result.append(category); |
| result.append(", expert: "); |
| if ((eFlags & EXPERT_ESETFLAG) != 0) result.append((eFlags & EXPERT_EFLAG) != 0); else result.append("<unset>"); |
| result.append(", hidden: "); |
| if ((eFlags & HIDDEN_ESETFLAG) != 0) result.append((eFlags & HIDDEN_EFLAG) != 0); else result.append("<unset>"); |
| result.append(", preferred: "); |
| if ((eFlags & PREFERRED_ESETFLAG) != 0) result.append((eFlags & PREFERRED_EFLAG) != 0); else result.append("<unset>"); |
| result.append(", mergeIntrospection: "); |
| result.append((eFlags & MERGE_INTROSPECTION_EFLAG) != 0); |
| result.append(", attributesExplicitEmpty: "); |
| result.append((eFlags & ATTRIBUTES_EXPLICIT_EMPTY_EFLAG) != 0); |
| result.append(", implicitlySetBits: "); |
| result.append(implicitlySetBits); |
| result.append(", implicitDecoratorFlag: "); |
| result.append(implicitDecoratorFlag); |
| result.append(')'); |
| return result.toString(); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { |
| if (featureID >= 0) { |
| switch (eDerivedStructuralFeatureID(featureID, baseClass)) { |
| case BeaninfoPackage.FEATURE_DECORATOR__EANNOTATIONS: |
| return ((InternalEList)getEAnnotations()).basicAdd(otherEnd, msgs); |
| case BeaninfoPackage.FEATURE_DECORATOR__EMODEL_ELEMENT: |
| if (eContainer != null) |
| msgs = eBasicRemoveFromContainer(msgs); |
| return eBasicSetContainer(otherEnd, BeaninfoPackage.FEATURE_DECORATOR__EMODEL_ELEMENT, msgs); |
| default: |
| return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs); |
| } |
| } |
| if (eContainer != null) |
| msgs = eBasicRemoveFromContainer(msgs); |
| return eBasicSetContainer(otherEnd, featureID, msgs); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { |
| if (featureID >= 0) { |
| switch (eDerivedStructuralFeatureID(featureID, baseClass)) { |
| case BeaninfoPackage.FEATURE_DECORATOR__EANNOTATIONS: |
| return ((InternalEList)getEAnnotations()).basicRemove(otherEnd, msgs); |
| case BeaninfoPackage.FEATURE_DECORATOR__DETAILS: |
| return ((InternalEList)getDetails()).basicRemove(otherEnd, msgs); |
| case BeaninfoPackage.FEATURE_DECORATOR__EMODEL_ELEMENT: |
| return eBasicSetContainer(null, BeaninfoPackage.FEATURE_DECORATOR__EMODEL_ELEMENT, msgs); |
| case BeaninfoPackage.FEATURE_DECORATOR__CONTENTS: |
| return ((InternalEList)getContents()).basicRemove(otherEnd, msgs); |
| case BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES: |
| return ((InternalEList)getAttributes()).basicRemove(otherEnd, msgs); |
| default: |
| return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); |
| } |
| } |
| return eBasicSetContainer(null, featureID, msgs); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public NotificationChain eBasicRemoveFromContainer(NotificationChain msgs) { |
| if (eContainerFeatureID >= 0) { |
| switch (eContainerFeatureID) { |
| case BeaninfoPackage.FEATURE_DECORATOR__EMODEL_ELEMENT: |
| return eContainer.eInverseRemove(this, EcorePackage.EMODEL_ELEMENT__EANNOTATIONS, EModelElement.class, msgs); |
| default: |
| return eDynamicBasicRemoveFromContainer(msgs); |
| } |
| } |
| return eContainer.eInverseRemove(this, EOPPOSITE_FEATURE_BASE - eContainerFeatureID, null, msgs); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public Object eGet(EStructuralFeature eFeature, boolean resolve) { |
| switch (eDerivedStructuralFeatureID(eFeature)) { |
| case BeaninfoPackage.FEATURE_DECORATOR__EANNOTATIONS: |
| return getEAnnotations(); |
| case BeaninfoPackage.FEATURE_DECORATOR__SOURCE: |
| return getSource(); |
| case BeaninfoPackage.FEATURE_DECORATOR__DETAILS: |
| return getDetails(); |
| case BeaninfoPackage.FEATURE_DECORATOR__EMODEL_ELEMENT: |
| return getEModelElement(); |
| case BeaninfoPackage.FEATURE_DECORATOR__CONTENTS: |
| return getContents(); |
| case BeaninfoPackage.FEATURE_DECORATOR__REFERENCES: |
| return getReferences(); |
| case BeaninfoPackage.FEATURE_DECORATOR__DISPLAY_NAME: |
| return getDisplayName(); |
| case BeaninfoPackage.FEATURE_DECORATOR__SHORT_DESCRIPTION: |
| return getShortDescription(); |
| case BeaninfoPackage.FEATURE_DECORATOR__CATEGORY: |
| return getCategory(); |
| case BeaninfoPackage.FEATURE_DECORATOR__EXPERT: |
| return isExpert() ? Boolean.TRUE : Boolean.FALSE; |
| case BeaninfoPackage.FEATURE_DECORATOR__HIDDEN: |
| return isHidden() ? Boolean.TRUE : Boolean.FALSE; |
| case BeaninfoPackage.FEATURE_DECORATOR__PREFERRED: |
| return isPreferred() ? Boolean.TRUE : Boolean.FALSE; |
| case BeaninfoPackage.FEATURE_DECORATOR__MERGE_INTROSPECTION: |
| return isMergeIntrospection() ? Boolean.TRUE : Boolean.FALSE; |
| case BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY: |
| return isAttributesExplicitEmpty() ? Boolean.TRUE : Boolean.FALSE; |
| case BeaninfoPackage.FEATURE_DECORATOR__IMPLICITLY_SET_BITS: |
| return new Long(getImplicitlySetBits()); |
| case BeaninfoPackage.FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG: |
| return getImplicitDecoratorFlag(); |
| case BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES: |
| return getAttributes(); |
| } |
| return eDynamicGet(eFeature, resolve); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void eSet(EStructuralFeature eFeature, Object newValue) { |
| switch (eDerivedStructuralFeatureID(eFeature)) { |
| case BeaninfoPackage.FEATURE_DECORATOR__EANNOTATIONS: |
| getEAnnotations().clear(); |
| getEAnnotations().addAll((Collection)newValue); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__SOURCE: |
| setSource((String)newValue); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__DETAILS: |
| getDetails().clear(); |
| getDetails().addAll((Collection)newValue); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__EMODEL_ELEMENT: |
| setEModelElement((EModelElement)newValue); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__CONTENTS: |
| getContents().clear(); |
| getContents().addAll((Collection)newValue); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__REFERENCES: |
| getReferences().clear(); |
| getReferences().addAll((Collection)newValue); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__DISPLAY_NAME: |
| setDisplayName((String)newValue); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__SHORT_DESCRIPTION: |
| setShortDescription((String)newValue); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__CATEGORY: |
| setCategory((String)newValue); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__EXPERT: |
| setExpert(((Boolean)newValue).booleanValue()); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__HIDDEN: |
| setHidden(((Boolean)newValue).booleanValue()); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__PREFERRED: |
| setPreferred(((Boolean)newValue).booleanValue()); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__MERGE_INTROSPECTION: |
| setMergeIntrospection(((Boolean)newValue).booleanValue()); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY: |
| setAttributesExplicitEmpty(((Boolean)newValue).booleanValue()); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__IMPLICITLY_SET_BITS: |
| setImplicitlySetBits(((Long)newValue).longValue()); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG: |
| setImplicitDecoratorFlag((ImplicitItem)newValue); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES: |
| getAttributes().clear(); |
| getAttributes().addAll((Collection)newValue); |
| return; |
| } |
| eDynamicSet(eFeature, newValue); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void eUnset(EStructuralFeature eFeature) { |
| switch (eDerivedStructuralFeatureID(eFeature)) { |
| case BeaninfoPackage.FEATURE_DECORATOR__EANNOTATIONS: |
| getEAnnotations().clear(); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__SOURCE: |
| setSource(SOURCE_EDEFAULT); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__DETAILS: |
| getDetails().clear(); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__EMODEL_ELEMENT: |
| setEModelElement((EModelElement)null); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__CONTENTS: |
| getContents().clear(); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__REFERENCES: |
| getReferences().clear(); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__DISPLAY_NAME: |
| unsetDisplayName(); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__SHORT_DESCRIPTION: |
| unsetShortDescription(); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__CATEGORY: |
| setCategory(CATEGORY_EDEFAULT); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__EXPERT: |
| unsetExpert(); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__HIDDEN: |
| unsetHidden(); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__PREFERRED: |
| unsetPreferred(); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__MERGE_INTROSPECTION: |
| setMergeIntrospection(MERGE_INTROSPECTION_EDEFAULT); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY: |
| setAttributesExplicitEmpty(ATTRIBUTES_EXPLICIT_EMPTY_EDEFAULT); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__IMPLICITLY_SET_BITS: |
| setImplicitlySetBits(IMPLICITLY_SET_BITS_EDEFAULT); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG: |
| setImplicitDecoratorFlag(IMPLICIT_DECORATOR_FLAG_EDEFAULT); |
| return; |
| case BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES: |
| getAttributes().clear(); |
| return; |
| } |
| eDynamicUnset(eFeature); |
| } |
| |
| /** |
| * Called by overrides to eIsSet to test if source is set. This is because for the |
| * FeatureDecorator and subclasses, setting source to the classname is considered |
| * to be not set since that is the new default for each class level. By doing this |
| * when serializing it won't waste space and time adding a copy of the source string |
| * to the serialized output and then creating a NEW copy on each decorator loaded |
| * from an XMI file. |
| * |
| * @return <code>true</code> if source is not null and not equal to class name (less the "Impl" at the end). |
| * |
| * @since 1.1.0 |
| */ |
| protected boolean isSourceSet() { |
| return source != null && !eClass().getInstanceClassName().equals(source); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.emf.ecore.EObject#eIsSet(org.eclipse.emf.ecore.EStructuralFeature) |
| */ |
| public boolean eIsSet(EStructuralFeature eFeature) { |
| switch (eDerivedStructuralFeatureID(eFeature)) { |
| case BeaninfoPackage.FEATURE_DECORATOR__SOURCE: |
| return isSourceSet(); // Override so that if set to the same as classname, then it is considered not set. |
| default: |
| return eIsSetGen(eFeature); |
| } |
| } |
| |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public boolean eIsSetGen(EStructuralFeature eFeature) { |
| switch (eDerivedStructuralFeatureID(eFeature)) { |
| case BeaninfoPackage.FEATURE_DECORATOR__EANNOTATIONS: |
| return eAnnotations != null && !eAnnotations.isEmpty(); |
| case BeaninfoPackage.FEATURE_DECORATOR__SOURCE: |
| return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source); |
| case BeaninfoPackage.FEATURE_DECORATOR__DETAILS: |
| return details != null && !details.isEmpty(); |
| case BeaninfoPackage.FEATURE_DECORATOR__EMODEL_ELEMENT: |
| return getEModelElement() != null; |
| case BeaninfoPackage.FEATURE_DECORATOR__CONTENTS: |
| return contents != null && !contents.isEmpty(); |
| case BeaninfoPackage.FEATURE_DECORATOR__REFERENCES: |
| return references != null && !references.isEmpty(); |
| case BeaninfoPackage.FEATURE_DECORATOR__DISPLAY_NAME: |
| return isSetDisplayName(); |
| case BeaninfoPackage.FEATURE_DECORATOR__SHORT_DESCRIPTION: |
| return isSetShortDescription(); |
| case BeaninfoPackage.FEATURE_DECORATOR__CATEGORY: |
| return CATEGORY_EDEFAULT == null ? category != null : !CATEGORY_EDEFAULT.equals(category); |
| case BeaninfoPackage.FEATURE_DECORATOR__EXPERT: |
| return isSetExpert(); |
| case BeaninfoPackage.FEATURE_DECORATOR__HIDDEN: |
| return isSetHidden(); |
| case BeaninfoPackage.FEATURE_DECORATOR__PREFERRED: |
| return isSetPreferred(); |
| case BeaninfoPackage.FEATURE_DECORATOR__MERGE_INTROSPECTION: |
| return ((eFlags & MERGE_INTROSPECTION_EFLAG) != 0) != MERGE_INTROSPECTION_EDEFAULT; |
| case BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES_EXPLICIT_EMPTY: |
| return ((eFlags & ATTRIBUTES_EXPLICIT_EMPTY_EFLAG) != 0) != ATTRIBUTES_EXPLICIT_EMPTY_EDEFAULT; |
| case BeaninfoPackage.FEATURE_DECORATOR__IMPLICITLY_SET_BITS: |
| return implicitlySetBits != IMPLICITLY_SET_BITS_EDEFAULT; |
| case BeaninfoPackage.FEATURE_DECORATOR__IMPLICIT_DECORATOR_FLAG: |
| return implicitDecoratorFlag != IMPLICIT_DECORATOR_FLAG_EDEFAULT; |
| case BeaninfoPackage.FEATURE_DECORATOR__ATTRIBUTES: |
| return attributes != null && !attributes.isEmpty(); |
| } |
| return eDynamicIsSet(eFeature); |
| } |
| |
| } |