diff options
Diffstat (limited to 'Prebuild/src/Core/Nodes/DatabaseProjectNode.cs')
-rw-r--r-- | Prebuild/src/Core/Nodes/DatabaseProjectNode.cs | 188 |
1 files changed, 94 insertions, 94 deletions
diff --git a/Prebuild/src/Core/Nodes/DatabaseProjectNode.cs b/Prebuild/src/Core/Nodes/DatabaseProjectNode.cs index 8696a79..27c2051 100644 --- a/Prebuild/src/Core/Nodes/DatabaseProjectNode.cs +++ b/Prebuild/src/Core/Nodes/DatabaseProjectNode.cs | |||
@@ -1,94 +1,94 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections; | 2 | using System.Collections; |
3 | using System.Collections.Generic; | 3 | using System.Collections.Generic; |
4 | using System.Text; | 4 | using System.Text; |
5 | using System.Xml; | 5 | using System.Xml; |
6 | 6 | ||
7 | using Prebuild.Core.Attributes; | 7 | using Prebuild.Core.Attributes; |
8 | using Prebuild.Core.Interfaces; | 8 | using Prebuild.Core.Interfaces; |
9 | using Prebuild.Core.Utilities; | 9 | using Prebuild.Core.Utilities; |
10 | 10 | ||
11 | namespace Prebuild.Core.Nodes | 11 | namespace Prebuild.Core.Nodes |
12 | { | 12 | { |
13 | [DataNode("DatabaseProject")] | 13 | [DataNode("DatabaseProject")] |
14 | public class DatabaseProjectNode : DataNode | 14 | public class DatabaseProjectNode : DataNode |
15 | { | 15 | { |
16 | string name; | 16 | string name; |
17 | string path; | 17 | string path; |
18 | string fullpath; | 18 | string fullpath; |
19 | Guid guid = Guid.NewGuid(); | 19 | Guid guid = Guid.NewGuid(); |
20 | readonly List<AuthorNode> authors = new List<AuthorNode>(); | 20 | readonly List<AuthorNode> authors = new List<AuthorNode>(); |
21 | readonly List<DatabaseReferenceNode> references = new List<DatabaseReferenceNode>(); | 21 | readonly List<DatabaseReferenceNode> references = new List<DatabaseReferenceNode>(); |
22 | 22 | ||
23 | public Guid Guid | 23 | public Guid Guid |
24 | { | 24 | { |
25 | get { return guid; } | 25 | get { return guid; } |
26 | } | 26 | } |
27 | 27 | ||
28 | public string Name | 28 | public string Name |
29 | { | 29 | { |
30 | get { return name; } | 30 | get { return name; } |
31 | } | 31 | } |
32 | 32 | ||
33 | public string Path | 33 | public string Path |
34 | { | 34 | { |
35 | get { return path; } | 35 | get { return path; } |
36 | } | 36 | } |
37 | 37 | ||
38 | public string FullPath | 38 | public string FullPath |
39 | { | 39 | { |
40 | get { return fullpath; } | 40 | get { return fullpath; } |
41 | } | 41 | } |
42 | 42 | ||
43 | public IEnumerable<DatabaseReferenceNode> References | 43 | public IEnumerable<DatabaseReferenceNode> References |
44 | { | 44 | { |
45 | get { return references; } | 45 | get { return references; } |
46 | } | 46 | } |
47 | 47 | ||
48 | public override void Parse(XmlNode node) | 48 | public override void Parse(XmlNode node) |
49 | { | 49 | { |
50 | name = Helper.AttributeValue(node, "name", name); | 50 | name = Helper.AttributeValue(node, "name", name); |
51 | path = Helper.AttributeValue(node, "path", name); | 51 | path = Helper.AttributeValue(node, "path", name); |
52 | 52 | ||
53 | try | 53 | try |
54 | { | 54 | { |
55 | fullpath = Helper.ResolvePath(path); | 55 | fullpath = Helper.ResolvePath(path); |
56 | } | 56 | } |
57 | catch | 57 | catch |
58 | { | 58 | { |
59 | throw new WarningException("Could not resolve Solution path: {0}", path); | 59 | throw new WarningException("Could not resolve Solution path: {0}", path); |
60 | } | 60 | } |
61 | 61 | ||
62 | Kernel.Instance.CurrentWorkingDirectory.Push(); | 62 | Kernel.Instance.CurrentWorkingDirectory.Push(); |
63 | 63 | ||
64 | try | 64 | try |
65 | { | 65 | { |
66 | Helper.SetCurrentDir(fullpath); | 66 | Helper.SetCurrentDir(fullpath); |
67 | 67 | ||
68 | if (node == null) | 68 | if (node == null) |
69 | { | 69 | { |
70 | throw new ArgumentNullException("node"); | 70 | throw new ArgumentNullException("node"); |
71 | } | 71 | } |
72 | 72 | ||
73 | foreach (XmlNode child in node.ChildNodes) | 73 | foreach (XmlNode child in node.ChildNodes) |
74 | { | 74 | { |
75 | IDataNode dataNode = Kernel.Instance.ParseNode(child, this); | 75 | IDataNode dataNode = Kernel.Instance.ParseNode(child, this); |
76 | 76 | ||
77 | if (dataNode == null) | 77 | if (dataNode == null) |
78 | continue; | 78 | continue; |
79 | 79 | ||
80 | if (dataNode is AuthorNode) | 80 | if (dataNode is AuthorNode) |
81 | authors.Add((AuthorNode)dataNode); | 81 | authors.Add((AuthorNode)dataNode); |
82 | else if (dataNode is DatabaseReferenceNode) | 82 | else if (dataNode is DatabaseReferenceNode) |
83 | references.Add((DatabaseReferenceNode)dataNode); | 83 | references.Add((DatabaseReferenceNode)dataNode); |
84 | } | 84 | } |
85 | } | 85 | } |
86 | finally | 86 | finally |
87 | { | 87 | { |
88 | Kernel.Instance.CurrentWorkingDirectory.Pop(); | 88 | Kernel.Instance.CurrentWorkingDirectory.Pop(); |
89 | } | 89 | } |
90 | 90 | ||
91 | base.Parse(node); | 91 | base.Parse(node); |
92 | } | 92 | } |
93 | } | 93 | } |
94 | } | 94 | } |