Пример #1
0
        public override IEnumerable <IModelChange> Invert()
        {
            var child = new CompositionChange
            {
                AffectedElement = AffectedElement,
                OldValue        = NewValue,
                NewValue        = OldValue,
                Feature         = Feature
            };
            var composition = (ICompositionInsertion)(Origin.Invert().First());

            yield return(composition.ConvertIntoMove(child));
        }
Пример #2
0
        private static IModelChange CreatePropertyChange(BubbledChangeEventArgs e)
        {
            var reference = e.Feature as IReference;
            var valChange = e.OriginalEventArgs as ValueChangedEventArgs;

            if (reference != null)
            {
                if (reference.IsContainment)
                {
                    var change = new CompositionChange
                    {
                        AffectedElement = e.Element,
                        Feature         = e.Feature,
                        OldValue        = valChange.OldValue as IModelElement,
                        NewValue        = valChange.NewValue as IModelElement
                    };
                    if (change.DeletedElement == null || change.DeletedElement.Parent == null)
                    {
                        return(change);
                    }
                    else
                    {
                        throw new NotImplementedException();
                    }
                }
                else
                {
                    return(new AssociationChange
                    {
                        AffectedElement = e.Element,
                        Feature = e.Feature,
                        OldValue = valChange.OldValue as IModelElement,
                        NewValue = valChange.NewValue as IModelElement
                    });
                }
            }
            else
            {
                return(new AttributeChange
                {
                    AffectedElement = e.Element,
                    Feature = e.Feature,
                    OldValue = valChange.OldValue != null?e.Feature.Type.Serialize(valChange.OldValue) : null,
                                   NewValue = valChange.NewValue != null?e.Feature.Type.Serialize(valChange.NewValue) : null
                });
            }
        }
Пример #3
0
 /// <summary>
 /// Creates a new instance
 /// </summary>
 public CompositionChangeReferencedElementsCollection(CompositionChange parent)
 {
     this._parent = parent;
 }
Пример #4
0
 /// <summary>
 /// Creates a new instance
 /// </summary>
 public CompositionChangeChildrenCollection(CompositionChange parent)
 {
     this._parent = parent;
 }