-
Notifications
You must be signed in to change notification settings - Fork 16
/
RDomEnum.cs
93 lines (76 loc) · 2.69 KB
/
RDomEnum.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
using System;
using System.Collections.Generic;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using RoslynDom.Common;
using System.Linq;
namespace RoslynDom
{
public class RDomEnum : RDomBase<IEnum, EnumDeclarationSyntax, ISymbol>, IEnum
{
internal RDomEnum(
EnumDeclarationSyntax rawItem)
: base(rawItem)
{
//Initialize2();
}
//internal RDomEnum(
// EnumDeclarationSyntax rawItem,
// params PublicAnnotation[] publicAnnotations)
//: base(rawItem, publicAnnotations)
//{
// Initialize();
//}
internal RDomEnum(RDomEnum oldRDom)
: base(oldRDom)
{
AccessModifier = oldRDom.AccessModifier;
UnderlyingType = oldRDom.UnderlyingType;
}
//protected override void Initialize()
//{
// base.Initialize();
// AccessModifier = GetAccessibility();
// var symbol = Symbol as INamedTypeSymbol;
// if (symbol != null)
// {
// var underlyingNamedTypeSymbol = symbol.EnumUnderlyingType;
// UnderlyingType = new RDomReferencedType(underlyingNamedTypeSymbol.DeclaringSyntaxReferences, underlyingNamedTypeSymbol);
// }
//}
//private void Initialize2()
//{
// Initialize();
//}
//public override EnumDeclarationSyntax BuildSyntax()
//{
// var modifiers = this.BuildModfierSyntax();
// var node = SyntaxFactory.EnumDeclaration(Name)
// .WithModifiers(modifiers);
// //var node = SyntaxFactory.EnumDeclaration(Name);
// // TODO: Support enum members
// node = RoslynUtilities.UpdateNodeIfListNotEmpty(BuildAttributeListSyntax(), node, (n, l) => n.WithAttributeLists(l));
// return (EnumDeclarationSyntax)RoslynUtilities.Format(node);
//}
public IEnumerable<IAttribute> Attributes
{ get { return GetAttributes(); } }
public string Namespace
{ get { return RoslynDomUtilities.GetNamespace(this.Parent); } }
public IType ContainingType { get; set; }
public string QualifiedName
{
get { return GetQualifiedName(); }
}
public AccessModifier AccessModifier { get; set; }
public IReferencedType UnderlyingType { get; set; }
public MemberKind MemberKind
{
get { return MemberKind.Enum; }
}
public StemMemberKind StemMemberKind
{
get { return StemMemberKind.Enum; }
}
}
}