//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Microsoft
//------------------------------------------------------------------------------
namespace System.Xml {
///
public interface IXmlLineInfo {
///
bool HasLineInfo();
///
int LineNumber { get; }
///
int LinePosition { get; }
}
#if !SILVERLIGHT
internal class PositionInfo : IXmlLineInfo {
public virtual bool HasLineInfo() { return false; }
public virtual int LineNumber { get { return 0;} }
public virtual int LinePosition { get { return 0;} }
public static PositionInfo GetPositionInfo(Object o) {
IXmlLineInfo li = o as IXmlLineInfo;
if (li != null) {
return new ReaderPositionInfo(li);
}
else {
return new PositionInfo();
}
}
}
internal class ReaderPositionInfo: PositionInfo {
private IXmlLineInfo lineInfo;
public ReaderPositionInfo(IXmlLineInfo lineInfo) {
this.lineInfo = lineInfo;
}
public override bool HasLineInfo() {
return lineInfo.HasLineInfo();
}
public override int LineNumber {
get {
return lineInfo.LineNumber;
}
}
public override int LinePosition {
get {
return lineInfo.LinePosition;
}
}
}
#endif
}// namespace