void SetOffsetChangeMap(OffsetChangeMap offsetChangeMap) { if (offsetChangeMap != null) { if (!offsetChangeMap.IsFrozen) { throw new ArgumentException("The OffsetChangeMap must be frozen before it can be used in DocumentChangeEventArgs"); } if (!offsetChangeMap.IsValidForDocumentChange(this.Offset, this.RemovalLength, this.InsertionLength)) { throw new ArgumentException("OffsetChangeMap is not valid for this document change", "offsetChangeMap"); } this.offsetChangeMap = offsetChangeMap; } }
/// <summary> /// Creates a new DocumentChangeEventArgs object. /// </summary> public DocumentChangeEventArgs(int offset, string removedText, string insertedText, OffsetChangeMap offsetChangeMap) { ThrowUtil.CheckNotNegative(offset, "offset"); ThrowUtil.CheckNotNull(removedText, "removedText"); ThrowUtil.CheckNotNull(insertedText, "insertedText"); Offset = offset; RemovedText = removedText; InsertedText = insertedText; if (offsetChangeMap != null) { if (!offsetChangeMap.IsFrozen) { throw new ArgumentException("The OffsetChangeMap must be frozen before it can be used in DocumentChangeEventArgs"); } if (!offsetChangeMap.IsValidForDocumentChange(offset, removedText.Length, insertedText.Length)) { throw new ArgumentException("OffsetChangeMap is not valid for this document change", nameof(offsetChangeMap)); } this.offsetChangeMap = offsetChangeMap; } }