internal static ChangeTracker CreateChangeTracker(CommonDataServices dataServices, bool asReadOnly) {
     if (asReadOnly) {
         return new ReadOnlyChangeTracker();
     }
     else {
         return new StandardChangeTracker(dataServices);
     }
 }
 internal ChangeProcessor(CommonDataServices services, DataContext context) {
     this.services = services;
     this.context = context;
     this.tracker = services.ChangeTracker;
     this.changeDirector = services.ChangeDirector;
     this.currentParentEdges = new EdgeMap();
     this.originalChildEdges = new EdgeMap();
     this.originalChildReferences = new ReferenceMap();
 }
 internal StandardChangeTracker(CommonDataServices services) {
     this.services = services;
     this.items = new Dictionary<object, StandardTrackedObject>();
     this.onPropertyChanging = new PropertyChangingEventHandler(this.OnPropertyChanging);
 }