using System;
namespace AnticipatingMinds.Genesis.CodeDOM{
/// <summary>
/// Represents a base class for type member declaration.
/// </summary>
[Serializable]
public abstract class CodeTypeMemberDeclaration : CodeElement
{
/// <summary>
/// Represents a set of possible modifiers for type member declaration.
/// </summary>
[Flags]
public enum MemberDeclarationModifiers
{
/// <summary>
/// Member hides an inherited member.
/// </summary>
New = 0x1,
/// <summary>
/// Abstract member.
/// </summary>
Abstract = 0x2,
/// <summary>
/// member is sealed.
/// </summary>
Sealed = 0x4,
/// <summary>
/// Virtual member.
/// </summary>
Virtual = 0x8,
/// <summary>
/// Member is ovveriding virtual member.
/// </summary>
Override = 0x10,
/// <summary>
/// Public member accessability.
/// </summary>
Public = 0x20,
/// <summary>
/// Family member accessability (Protected)
/// </summary>
Protected = 0x40,
/// <summary>
/// Private member accessability.
/// </summary>
Private = 0x80,
/// <summary>
/// Assembly member (Internal)
/// </summary>
Assembly = 0x100,
/// <summary>
/// Family & assembly accessabilty (internal protected in C#)
/// </summary>
ProtectedAndAssembly = 0x200,
/// <summary>
/// Family or assembly accessability (not supported in C#)
/// </summary>
ProtectedOrAssembly = 0x400,
/// <summary>
/// Static memebr.
/// </summary>
Static = 0x800,
/// <summary>
///
/// </summary>
Extern = 0x1000,
/// <summary>
/// Constant member
/// </summary>
Const = 0x2000,
/// <summary>
///
/// </summary>
Volatile = 0x4000,
/// <summary>
///
/// </summary>
Unsafe = 0x8000,
/// <summary>
///
/// </summary>
ReadOnly = 0x10000
}
/// <summary>
/// Initializes new instance of CodeTypeMemberDeclaration
/// </summary>
protected CodeTypeMemberDeclaration()
{
}
/// <summary>
/// Code type that declares this member.
/// </summary>
public CodeTypeDeclaration DeclaringType
{
get
{
return Parent as CodeTypeDeclaration;
}
}
/// <summary>
/// Member declaration modifiers.
/// </summary>
public MemberDeclarationModifiers Modifiers
{
get
{
return modifiers;
}
set
{
modifiers = value;
}
}
/// <summary>
/// Gets attributes collection for a member.
/// </summary>
public CodeAttributeCollection Attributes
{
get
{
return attributes;
}
}
public CodeTypeMemberInfo MemberInfo
{
get
{
return memberInfo;
}
set
{
memberInfo = value;
}
}
private MemberDeclarationModifiers modifiers;
private CodeAttributeCollection attributes = new CodeAttributeCollection();
private CodeTypeMemberInfo memberInfo = null;
}
}
|