// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.Diagnostics; using System.Globalization; using System.Linq; using ICSharpCode.AvalonEdit.Document; namespace ICSharpCode.AvalonEdit.Xml { /// /// Whitespace or character data /// public class AXmlText: AXmlObject { /// The context in which the text occured internal TextType Type { get; set; } /// The text exactly as in source public string EscapedValue { get; set; } /// The text with all entity references resloved public string Value { get; set; } /// True if the text contains only whitespace characters [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "Whitespace", Justification = "System.Xml also uses 'Whitespace'")] public bool ContainsOnlyWhitespace { get; set; } /// public override void AcceptVisitor(IAXmlVisitor visitor) { visitor.VisitText(this); } /// internal override bool UpdateDataFrom(AXmlObject source) { if (!base.UpdateDataFrom(source)) return false; AXmlText src = (AXmlText)source; if (this.EscapedValue != src.EscapedValue || this.Value != src.Value) { OnChanging(); this.EscapedValue = src.EscapedValue; this.Value = src.Value; OnChanged(); return true; } else { return false; } } /// public override string ToString() { return string.Format(CultureInfo.InvariantCulture, "[{0} Text.Length={1}]", base.ToString(), this.EscapedValue.Length); } } }