/// <summary> /// Adds references to existing features referenced by this observation. /// <para/> /// This should be called by implementations of <c>Operation.AddReferences</c> /// (for each instance of Observation that the operation involves). This ensures /// that the features utilized by observations are cross-referenced to the editing /// operations that depend on them. /// </summary> /// <param name="op">The operation that makes use of this observation</param> internal void AddReferences(Operation op) { Feature[] features = GetReferences(); foreach (Feature f in features) f.AddOp(op); }
/// <summary> /// Performs actions when the operation that uses this observation is marked /// for deletion as part of its rollback function. This cuts any reference from any /// previously existing feature that was cross-referenced to the operation (see /// calls made to AddOp). /// </summary> /// <param name="op">The operation that makes use of this observation.</param> internal abstract void OnRollback(Operation op);