using System;
namespace AnticipatingMinds.Genesis.CodeDOM{
/// <summary>
/// Represents a single 'catch' clause in a 'try' statement.
/// </summary>
[Serializable]
public class CodeCatchClause : CodeElement
{
#region Instance constructors
/// <summary>
/// Initializes new instance of <see cref="CodeCatchClause"/> class.
/// </summary>
public CodeCatchClause() : this(null,string.Empty) {}
/// <summary>
/// Initializes new instance of <see cref="CodeCatchClause"/> class.
/// </summary>
/// <param name="catchExceptionType">Filter exception type.</param>
/// <param name="localName">Filter exception variable.</param>
public CodeCatchClause(CodeTypeReference catchExceptionType,string localName)
{
this.catchExceptionType = catchExceptionType;
this.localName = localName;
}
#endregion Instance constructors
#region Public instance properties
/// <summary>
/// Gets or sets filter exception type.
/// </summary>
public CodeTypeReference CatchExceptionType
{
get
{
return catchExceptionType;
}
set
{
catchExceptionType = value;
}
}
/// <summary>
/// Gets or sets filter exception variable.
/// </summary>
public string LocalName
{
get
{
return localName;
}
set
{
localName = value;
}
}
/// <summary>
/// Gets or sets catch block statements.
/// </summary>
public CodeStatementBlock Statements
{
get
{
return statements;
}
set
{
statements = value;
}
}
#endregion Public instance properties
#region Private instance fields
private CodeTypeReference catchExceptionType;
private string localName;
private CodeStatementBlock statements = new CodeStatementBlock();
#endregion Private instance fields
}
/// <summary>
/// Represents 'finally' clause in a 'try' statement.
/// </summary>
[Serializable]
public class CodeFinallyClause : CodeElement
{
#region Instance constructors
/// <summary>
/// Initializes new instance of <see cref="CodeFinallyClause"/> class.
/// </summary>
public CodeFinallyClause()
{
}
#endregion Instance constructors
#region Public instance properties
/// <summary>
/// Gets or sets finally block statements.
/// </summary>
public CodeStatementBlock Statements
{
get
{
return statements;
}
set
{
statements = value;
}
}
#endregion Public instance properties
#region Private instance fields
private CodeStatementBlock statements;
#endregion Private instance fields
}
/// <summary>
/// Represents a 'try' statement.
/// </summary>
/// <remarks>
/// The try statement provides a mechanism for catching exceptions that occur
/// during execution of a block.
/// (ECMA 334. Page 197, Line 11)
/// </remarks>
[Serializable]
public class CodeTryStatement : CodeEmbeddedStatement
{
#region Instance constructors
/// <summary>
/// Initializaes new instance of <see cref="CodeTryStatement"/> class.
/// </summary>
public CodeTryStatement()
{
}
#endregion Instance constructors
#region Public instance properties
/// <summary>
/// Gets or sets try block statements.
/// </summary>
public CodeStatementBlock Statements
{
get
{
return statements;
}
set
{
statements = value;
}
}
/// <summary>
/// Gets collection of associated catch clauses.
/// </summary>
public CodeCatchClauseCollection CatchClauses
{
get
{
return catchClauses;
}
}
/// <summary>
/// Gets or sets finally clause.
/// </summary>
public CodeFinallyClause FinallyClause
{
get
{
return finallyClause;
}
set
{
finallyClause = value;
}
}
#endregion Public instance properties
#region Private instance fields
private CodeStatementBlock statements = new CodeStatementBlock();
private CodeCatchClauseCollection catchClauses = new CodeCatchClauseCollection();
private CodeFinallyClause finallyClause;
#endregion Private instance fields
}
}
|