using System;
namespace AnticipatingMinds.Genesis.CodeDOM{
/// <summary>
/// Represents a position of a code element in a source file or stream.
/// </summary>
[Serializable()]
public class CodeElementPosition
{
#region Instance constructors
/// <summary>
/// Initializes new instance of code position with source file name, line and column.
/// </summary>
/// <param name="fileName">Source file name.</param>
/// <param name="line">Line number in source file.</param>
/// <param name="column">Column where code element starts on specified line.</param>
/// <param name="position">Absolute position of code element in characters.</param>
public CodeElementPosition(string fileName,int line,int column,int position)
{
this.fileName = fileName;
this.line = line;
this.column = column;
this.absolutePosition = position;
}
/// <summary>
/// Initializes new instance of code position with source file name and line.
/// </summary>
/// <remarks>Column value is set to -1.</remarks>
/// <param name="fileName">Source file name.</param>
/// <param name="line">Line number in source file.</param>
public CodeElementPosition(string fileName,int line): this (fileName,line,-1,-1){}
/// <summary>
/// Initializes new instance of code position with source file name.
/// </summary>
/// <remarks>Column and Line values are set to -1.</remarks>
/// <param name="fileName">Source file name.</param>
public CodeElementPosition(string fileName): this (fileName,-1,-1,-1){}
/// <summary>
/// Initializes new instance of code position with source file name.
/// </summary>
/// <remarks>Column and Line values are set to -1. FileName value is set to String.Empty</remarks>
public CodeElementPosition(): this (string.Empty,-1,-1,-1){}
#endregion Instance constructors
#region Public instance properties
/// <summary>
/// Gets or sets source file name.
/// </summary>
public string FileName
{
get
{
return fileName;
}
set
{
fileName = (value == null ? string.Empty:value);
}
}
/// <summary>
/// Gets or sets line number.
/// </summary>
public int Line
{
get
{
return line;
}
set
{
line = value;
}
}
/// <summary>
/// Gets or sets column number.
/// </summary>
public int Column
{
get
{
return column;
}
set
{
column = value;
}
}
/// <summary>
/// Gets or sets absolute position from the begining of the source stream.
/// </summary>
public int Position
{
get
{
return absolutePosition;
}
set
{
absolutePosition = value;
}
}
#endregion Public instance properties
#region Private instance fields
string fileName = string.Empty;
int line = -1;
int column = -1;
int absolutePosition = -1;
#endregion Private instance fields
}
}
|