-
Notifications
You must be signed in to change notification settings - Fork 16
/
RDomRoot.cs
111 lines (97 loc) · 3.43 KB
/
RDomRoot.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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
using System.Collections.Generic;
using System.Linq;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using RoslynDom.Common;
namespace RoslynDom
{
public class RDomRoot : RDomBaseStemContainer<IRoot, CompilationUnitSyntax, ISymbol>, IRoot
{
internal RDomRoot(CompilationUnitSyntax rawItem)
: base(rawItem)
{
//Initialize2();
}
//internal RDomRoot(CompilationUnitSyntax rawItem,
// IEnumerable<IStemMember> members,
// IEnumerable<IUsing> usings,
// params PublicAnnotation[] publicAnnotations)
// : base(rawItem, members, usings, publicAnnotations)
//{
// Initialize();
//}
internal RDomRoot(RDomRoot oldRDom)
: base(oldRDom)
{ }
//protected override void Initialize()
//{
// base.Initialize();
// Name = "Root";
//}
//protected void Initialize2()
//{
// Initialize();
// var members = ListUtilities.MakeList(TypedSyntax, x => x.Members, x => RDomFactoryHelper.StemMemberFactoryHelper.MakeItem(x));
// var usings = ListUtilities.MakeList(TypedSyntax, x => x.Usings, x => RDomFactoryHelper.StemMemberFactoryHelper.MakeItem(x));
// foreach (var member in members)
// { AddOrMoveStemMember(member); }
// foreach (var member in usings)
// { AddOrMoveStemMember(member); }
//}
//public override CompilationUnitSyntax BuildSyntax()
//{
// var node = SyntaxFactory.CompilationUnit();
// node = RoslynUtilities.UpdateNodeIfListNotEmpty(BuildUsings(), node, (n, l) => n.WithUsings(l));
// node = RoslynUtilities.UpdateNodeIfListNotEmpty(BuildStemMembers(), node, (n, l) => n.WithMembers(l));
// return (CompilationUnitSyntax)RoslynUtilities.Format(node);
//}
public bool HasSyntaxErrors
{
get
{
return TypedSyntax.GetDiagnostics().Count() > 0;
}
}
public IEnumerable<IClass> RootClasses
{
get
{
var rootclasses = from x in NonemptyNamespaces
from y in x.Classes
select y;
return Classes.Union(rootclasses);
}
}
public IEnumerable<IEnum> RootEnums
{
get
{
var rootenums = from x in NonemptyNamespaces
from y in x.Enums
select y;
return Enums.Union(rootenums);
}
}
public IEnumerable<IInterface> RootInterfaces
{
get
{
var rootinterfaces = from x in NonemptyNamespaces
from y in x.Interfaces
select y;
return Interfaces.Union(rootinterfaces);
}
}
public IEnumerable<IStructure> RootStructures
{
get
{
var rootstructures = from x in NonemptyNamespaces
from y in x.Structures
select y;
return Structures.Union(rootstructures);
}
}
}
}