1 //----------------------------------------------------------------
2 // <copyright company="Microsoft Corporation">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 //----------------------------------------------------------------
7 namespace System.Activities.Presentation.Services
9 using System.Activities.Presentation.Model;
11 internal class ModelChangeInfoImpl : ModelChangeInfo
13 private ModelChangeType modelChangeType;
14 private ModelItem subject;
15 private string propertyName;
16 private ModelItem key;
17 private ModelItem oldValue;
18 private ModelItem value;
20 private ModelChangeInfoImpl(ModelChangeType modelChangeType, ModelItem subject, string propertyName, ModelItem key, ModelItem oldValue, ModelItem value)
22 this.modelChangeType = modelChangeType;
23 this.subject = subject;
24 this.propertyName = propertyName;
26 this.oldValue = oldValue;
30 public override ModelChangeType ModelChangeType
32 get { return this.modelChangeType; }
35 public override ModelItem Subject
37 get { return this.subject; }
40 public override string PropertyName
42 get { return this.propertyName; }
45 public override ModelItem Key
47 get { return this.key; }
50 public override ModelItem OldValue
52 get { return this.oldValue; }
55 public override ModelItem Value
57 get { return this.value; }
60 public static ModelChangeInfoImpl CreatePropertyChanged(ModelItem subject, string propertyName, ModelItem oldValue, ModelItem newValue)
62 return new ModelChangeInfoImpl(ModelChangeType.PropertyChanged, subject, propertyName, null, oldValue, newValue);
65 public static ModelChangeInfoImpl CreateCollectionItemAdded(ModelItem subject, ModelItem item)
67 return new ModelChangeInfoImpl(ModelChangeType.CollectionItemAdded, subject, null, null, null, item);
70 public static ModelChangeInfoImpl CreateCollectionItemRemoved(ModelItem subject, ModelItem item)
72 return new ModelChangeInfoImpl(ModelChangeType.CollectionItemRemoved, subject, null, null, null, item);
75 public static ModelChangeInfoImpl CreateDictionaryKeyValueAdded(ModelItem subject, ModelItem key, ModelItem value)
77 return new ModelChangeInfoImpl(ModelChangeType.DictionaryKeyValueAdded, subject, null, key, null, value);
80 public static ModelChangeInfoImpl CreateDictionaryKeyValueRemoved(ModelItem subject, ModelItem key, ModelItem value)
82 return new ModelChangeInfoImpl(ModelChangeType.DictionaryKeyValueRemoved, subject, null, key, null, value);
85 public static ModelChangeInfoImpl CreateDictionaryValueChanged(ModelItem subject, ModelItem key, ModelItem oldValue, ModelItem newValue)
87 return new ModelChangeInfoImpl(ModelChangeType.DictionaryValueChanged, subject, null, key, oldValue, newValue);