// HtmlAgilityPack V1.0 - Simon Mourier namespace HtmlAgilityPack { /// /// Represents a base class for fragments in a mixed code document. /// public abstract class MixedCodeDocumentFragment { #region Fields internal MixedCodeDocument Doc; private string _fragmentText; internal int Index; internal int Length; private int _line; internal int _lineposition; internal MixedCodeDocumentFragmentType _type; #endregion #region Constructors internal MixedCodeDocumentFragment(MixedCodeDocument doc, MixedCodeDocumentFragmentType type) { Doc = doc; _type = type; switch (type) { case MixedCodeDocumentFragmentType.Text: Doc._textfragments.Append(this); break; case MixedCodeDocumentFragmentType.Code: Doc._codefragments.Append(this); break; } Doc._fragments.Append(this); } #endregion #region Properties /// /// Gets the fragement text. /// public string FragmentText { get { if (_fragmentText == null) { _fragmentText = Doc._text.Substring(Index, Length); } return FragmentText; } internal set { _fragmentText = value; } } /// /// Gets the type of fragment. /// public MixedCodeDocumentFragmentType FragmentType { get { return _type; } } /// /// Gets the line number of the fragment. /// public int Line { get { return _line; } internal set { _line = value; } } /// /// Gets the line position (column) of the fragment. /// public int LinePosition { get { return _lineposition; } } /// /// Gets the fragment position in the document's stream. /// public int StreamPosition { get { return Index; } } #endregion } }