/// <summary>
        /// Gets called when the parent model element of the current model element is about to change
        /// </summary>
        /// <param name="oldParent">The old parent model element</param>
        /// <param name="newParent">The new parent model element</param>
        protected override void OnParentChanging(IModelElement newParent, IModelElement oldParent)
        {
            IResourceDemandingSEFF oldResourceDemandingSEFF_ResourceDemandingInternalBehaviour = ModelHelper.CastAs <IResourceDemandingSEFF>(oldParent);
            IResourceDemandingSEFF newResourceDemandingSEFF_ResourceDemandingInternalBehaviour = ModelHelper.CastAs <IResourceDemandingSEFF>(newParent);
            ValueChangedEventArgs  e = new ValueChangedEventArgs(oldResourceDemandingSEFF_ResourceDemandingInternalBehaviour, newResourceDemandingSEFF_ResourceDemandingInternalBehaviour);

            this.OnResourceDemandingSEFF_ResourceDemandingInternalBehaviourChanging(e);
            this.OnPropertyChanging("ResourceDemandingSEFF_ResourceDemandingInternalBehaviour", e, _resourceDemandingSEFF_ResourceDemandingInternalBehaviourReference);
        }
 /// <summary>
 /// Adds the given element to the collection
 /// </summary>
 /// <param name="item">The item to add</param>
 public override void Add(IModelElement item)
 {
     if ((this._parent.ResourceDemandingSEFF_ResourceDemandingInternalBehaviour == null))
     {
         IResourceDemandingSEFF resourceDemandingSEFF_ResourceDemandingInternalBehaviourCasted = item.As <IResourceDemandingSEFF>();
         if ((resourceDemandingSEFF_ResourceDemandingInternalBehaviourCasted != null))
         {
             this._parent.ResourceDemandingSEFF_ResourceDemandingInternalBehaviour = resourceDemandingSEFF_ResourceDemandingInternalBehaviourCasted;
             return;
         }
     }
 }
        /// <summary>
        /// Gets called when the parent model element of the current model element changes
        /// </summary>
        /// <param name="oldParent">The old parent model element</param>
        /// <param name="newParent">The new parent model element</param>
        protected override void OnParentChanged(IModelElement newParent, IModelElement oldParent)
        {
            IResourceDemandingSEFF oldResourceDemandingSEFF_ResourceDemandingInternalBehaviour = ModelHelper.CastAs <IResourceDemandingSEFF>(oldParent);
            IResourceDemandingSEFF newResourceDemandingSEFF_ResourceDemandingInternalBehaviour = ModelHelper.CastAs <IResourceDemandingSEFF>(newParent);

            if ((oldResourceDemandingSEFF_ResourceDemandingInternalBehaviour != null))
            {
                oldResourceDemandingSEFF_ResourceDemandingInternalBehaviour.ResourceDemandingInternalBehaviours.Remove(this);
            }
            if ((newResourceDemandingSEFF_ResourceDemandingInternalBehaviour != null))
            {
                newResourceDemandingSEFF_ResourceDemandingInternalBehaviour.ResourceDemandingInternalBehaviours.Add(this);
            }
            ValueChangedEventArgs e = new ValueChangedEventArgs(oldResourceDemandingSEFF_ResourceDemandingInternalBehaviour, newResourceDemandingSEFF_ResourceDemandingInternalBehaviour);

            this.OnResourceDemandingSEFF_ResourceDemandingInternalBehaviourChanged(e);
            this.OnPropertyChanged("ResourceDemandingSEFF_ResourceDemandingInternalBehaviour", e, _resourceDemandingSEFF_ResourceDemandingInternalBehaviourReference);
            base.OnParentChanged(newParent, oldParent);
        }