#region Copyright And Revision History /*--------------------------------------------------------------------------- EditDataTypes.cs Copyright © 2002 Bill Menees. All rights reserved. Bill@Menees.com Who When What ------- ---------- ----------------------------------------------------- BMenees 10.20.2002 Created. -----------------------------------------------------------------------------*/ #endregion using System; using System.Collections.ObjectModel; using System.Collections.Generic; using System.Diagnostics; namespace Menees.DiffUtils { public enum EditType { None = 0, Delete = 1, Insert = 2, Change = 3 }; [DebuggerDisplay("Type = {Type}, StartA = {StartA}, StartB = {StartB}, Length = {Length}")] public class Edit { #region Private Data Members private EditType m_eType; private int m_iStartA; //Where to Delete, Insert, or Change in the "A" sequence private int m_iStartB; //Where to Insert or Change in the "B" sequence private int m_iLength; #endregion #region Protected Properties public EditType Type { get { return m_eType; } } public int StartA { get { return m_iStartA; } } public int StartB { get { return m_iStartB; } } public int Length { get { return m_iLength; } } #endregion #region Constructors internal Edit(EditType eType, int iStartA, int iStartB, int iLength) { m_eType = eType; m_iStartA = iStartA; m_iStartB = iStartB; m_iLength = iLength; } #endregion } public class EditScript : ReadOnlyCollection { #region Constructors internal EditScript() : base(new List()) { } #endregion #region Internal Methods internal void Add(Edit E) { if (E.Type == EditType.Change) m_iLength += 2*E.Length; else m_iLength += E.Length; Items.Add(E); } #endregion #region Public Properties public int TotalEditLength { get { return m_iLength; } } #endregion #region Private Data Members private int m_iLength = 0; #endregion } }