diff options
Diffstat (limited to 'docs/HtmlAgilityPack/MixedCodeDocumentFragment.cs')
-rw-r--r-- | docs/HtmlAgilityPack/MixedCodeDocumentFragment.cs | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/docs/HtmlAgilityPack/MixedCodeDocumentFragment.cs b/docs/HtmlAgilityPack/MixedCodeDocumentFragment.cs new file mode 100644 index 00000000000..cfd268e0795 --- /dev/null +++ b/docs/HtmlAgilityPack/MixedCodeDocumentFragment.cs @@ -0,0 +1,95 @@ +// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+ /// <summary>
+ /// Represents a base class for fragments in a mixed code document.
+ /// </summary>
+ 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
+
+ /// <summary>
+ /// Gets the fragement text.
+ /// </summary>
+ public string FragmentText
+ {
+ get
+ {
+ if (_fragmentText == null)
+ {
+ _fragmentText = Doc._text.Substring(Index, Length);
+ }
+ return FragmentText;
+ }
+ internal set { _fragmentText = value; }
+ }
+
+ /// <summary>
+ /// Gets the type of fragment.
+ /// </summary>
+ public MixedCodeDocumentFragmentType FragmentType
+ {
+ get { return _type; }
+ }
+
+ /// <summary>
+ /// Gets the line number of the fragment.
+ /// </summary>
+ public int Line
+ {
+ get { return _line; }
+ internal set { _line = value; }
+ }
+
+ /// <summary>
+ /// Gets the line position (column) of the fragment.
+ /// </summary>
+ public int LinePosition
+ {
+ get { return _lineposition; }
+ }
+
+ /// <summary>
+ /// Gets the fragment position in the document's stream.
+ /// </summary>
+ public int StreamPosition
+ {
+ get { return Index; }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file |