using System;
namespace AnticipatingMinds.Genesis.CodeDOM{
/// <summary>
/// Property declaration.
/// </summary>
/// <remarks>ECMA 334 - p. 242, line 29.</remarks>
[Serializable]
public class CodeTypePropertyDeclaration : CodeTypeMemberDeclaration
{
/// <summary>
/// Initializes new instance of the <see cref="CodeTypePropertyDeclaration"/> class.
/// </summary>
/// <param name="name">The name of the declared property.</param>
public CodeTypePropertyDeclaration(string name): this()
{
this.name = name;
}
/// <summary>
/// Initializes new instance of the <see cref="CodeTypePropertyDeclaration"/> class.
/// </summary>
public CodeTypePropertyDeclaration(): base ()
{
getAccessorBody = null;
setAccessorBody = null;
}
/// <summary>
/// Gets property return type.
/// </summary>
/// <remarks>ECMA 334 - p. 230, line 1.</remarks>
public CodeTypeReference ReturnType
{
get
{
return returnType;
}
set
{
returnType = value;
if(returnType == null)
returnType = new CodeTypeReference(typeof(void));
}
}
/// <summary>
/// Gets the body of the get accessor.
/// </summary>
/// <remarks>ECMA 334 - p. 244, line 4.</remarks>
public CodeStatementBlock GetAccessorStatements
{
get
{
return getAccessorBody;
}
set
{
getAccessorBody = value;
}
}
/// <summary>
/// Gets the body of the set accessor.
/// </summary>
/// <remarks>ECMA 334 - p. 244, line 4.</remarks>
public CodeStatementBlock SetAccessorStatements
{
get
{
return setAccessorBody;
}
set
{
setAccessorBody = value;
}
}
/// <summary>
/// Gets the attributes of the set accessor.
/// </summary>
/// <remarks>ECMA 334 - p. 244, line 4.</remarks>
public CodeAttributeCollection SetAccessorAttributes
{
get
{
return setAccessorAttributes;
}
}
/// <summary>
/// Gets the attributes of the set accessor.
/// </summary>
/// <remarks>ECMA 334 - p. 244, line 4.</remarks>
public CodeAttributeCollection GetAccessorAttributes
{
get
{
return getAccessorAttributes;
}
}
/// <summary>
/// Property name.
/// </summary>
public virtual string Name
{
get
{
return name;
}
set
{
name = (value == null ? string.Empty : value);
}
}
public bool HasSetter
{
get
{
return hasSetter;
}
set
{
hasSetter = value;
}
}
public bool HasGetter
{
get
{
return hasGetter;
}
set
{
hasGetter = value;
}
}
private string name = string.Empty;
private CodeStatementBlock getAccessorBody;
private CodeStatementBlock setAccessorBody;
private bool hasGetter = false;
private bool hasSetter = false;
private CodeAttributeCollection getAccessorAttributes = new CodeAttributeCollection();
private CodeAttributeCollection setAccessorAttributes = new CodeAttributeCollection();
private CodeTypeReference returnType;
}
}
|