-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathICsMember.cs
More file actions
137 lines (122 loc) · 8.77 KB
/
ICsMember.cs
File metadata and controls
137 lines (122 loc) · 8.77 KB
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
//*****************************************************************************
//* Code Factory SDK
//* Copyright (c) 2020-2023 CodeFactory, LLC
//*****************************************************************************
using System;
using System.Threading.Tasks;
using CodeFactory.Document;
using CodeFactory.SourceCode;
namespace CodeFactory.DotNet.CSharp
{
/// <summary>
/// Base definition for all c# member models.
/// </summary>
public interface ICsMember:ICsModel,ICsAttributes,IDotNetMember,IParent
{
/// <summary>
/// The security scope that has been assigned to the member.
/// </summary>
new CsSecurity Security { get; }
/// <summary>
/// The type of member the model is.
/// </summary>
new CsMemberType MemberType { get; }
/// <summary>
/// Adds the source code directly before the definition of the <see cref="ICsMember"/>in the target document.
/// </summary>
/// <param name="sourceDocument">The fully qualified path to the source code document to be updated.</param>
/// <param name="sourceCode">The source code that is to be added to the document.</param>
/// <returns>A newly loaded copy of the <see cref="ICsSource"/> model after the changes have been applied.</returns>
/// <exception cref="DocumentException">Error is raised when errors occur updating the source document.</exception>
[Obsolete("No longer support will be removed in later edition, you no longer need to pass the source document.",false)]
Task<CsSource> AddBeforeAsync(string sourceDocument, string sourceCode);
/// <summary>
/// Adds the source code directly before the definition of the <see cref="ICsMember"/>in the target document.
/// </summary>
/// <param name="sourceCode">The source code that is to be added to the document.</param>
/// <returns>A newly loaded copy of the <see cref="ICsSource"/> model after the changes have been applied.</returns>
/// <exception cref="DocumentException">Error is raised when errors occur updating the source document.</exception>
Task<CsSource> AddBeforeAsync(string sourceCode);
/// <summary>
/// Adds the source code directly before the definition of the <see cref="ICsMember"/>in the target document.
/// </summary>
/// <param name="sourceCode">The source code that is to be added to the document.</param>
/// <param name="ignoreLeadingModelsAndDocs">Changes the before entry point to the start of the member definition not before the documentation or attributes that are assigned to the member.</param>
/// <returns>A newly loaded copy of the <see cref="ICsSource"/> model after the changes have been applied.</returns>
/// <exception cref="DocumentException">Error is raised when errors occur updating the source document.</exception>
Task<CsSource> AddBeforeAsync(string sourceCode,bool ignoreLeadingModelsAndDocs);
/// <summary>
/// Adds the source code directly after the definition of the <see cref="ICsMember"/>in the target document.
/// </summary>
/// <param name="sourceDocument">The fully qualified path to the source code document to be updated.</param>
/// <param name="sourceCode">The source code that is to be added to the document.</param>
/// <returns>A newly loaded copy of the <see cref="ICsSource"/> model after the changes have been applied.</returns>
/// <exception cref="DocumentException">Error is raised when errors occur updating the source document.</exception>
[Obsolete("No longer support will be removed in later edition, you no longer need to pass the source document.",false)]
Task<CsSource> AddAfterAsync(string sourceDocument, string sourceCode);
/// <summary>
/// Adds the source code directly after the definition of the <see cref="ICsMember"/>in the target document.
/// </summary>
/// <param name="sourceCode">The source code that is to be added to the document.</param>
/// <returns>A newly loaded copy of the <see cref="ICsSource"/> model after the changes have been applied.</returns>
/// <exception cref="DocumentException">Error is raised when errors occur updating the source document.</exception>
Task<CsSource> AddAfterAsync(string sourceCode);
/// <summary>
/// Deletes the definition of the member from the source document.
/// </summary>
/// <param name="sourceDocument">The source document that the member is to be removed from.</param>
/// <returns>A newly loaded copy of the <see cref="ICsSource"/> model after the member has been removed from the document.</returns>
/// <exception cref="DocumentException">Error is raised when errors occur updating the source document.</exception>
[Obsolete("No longer support will be removed in later edition, you no longer need to pass the source document.",false)]
Task<CsSource> DeleteAsync(string sourceDocument);
/// <summary>
/// Deletes the definition of the member from the source document.
/// </summary>
/// <returns>A newly loaded copy of the <see cref="ICsSource"/> model after the member has been removed from the document.</returns>
/// <exception cref="DocumentException">Error is raised when errors occur updating the source document.</exception>
Task<CsSource> DeleteAsync();
/// <summary>
/// Gets the starting and ending locations within the document where the member is located.
/// </summary>
/// <param name="sourceDocument">The fully qualified path to the document that has the member defined in.</param>
/// <returns>The source location for the member.</returns>
/// <exception cref="DocumentException">Raised when an error occurs getting the location from the document.</exception>
[Obsolete("No longer support will be removed in later edition, you no longer need to pass the source document.",false)]
Task<ISourceLocation> GetSourceLocationAsync(string sourceDocument);
/// <summary>
/// Gets the starting and ending locations within the document where the member is located.
/// </summary>
/// <returns>The source location for the member.</returns>
/// <exception cref="DocumentException">Raised when an error occurs getting the location from the document.</exception>
Task<ISourceLocation> GetSourceLocationAsync();
/// <summary>
/// Replaces the current member with the provided source code.
/// </summary>
/// <param name="sourceDocument">The fully qualified path to the source code document to be updated.</param>
/// <param name="sourceCode">The source code that is to be used to replace the original definition in the document.</param>
/// <returns>A newly loaded copy of the <see cref="ICsSource"/> model after the changes have been applied.</returns>
/// <exception cref="DocumentException">Error is raised when errors occur updating the source document.</exception>
[Obsolete("No longer support will be removed in later edition, you no longer need to pass the source document.",false)]
Task<CsSource> ReplaceAsync(string sourceDocument, string sourceCode);
/// <summary>
/// Replaces the current member with the provided source code.
/// </summary>
/// <param name="sourceCode">The source code that is to be used to replace the original definition in the document.</param>
/// <returns>A newly loaded copy of the <see cref="ICsSource"/> model after the changes have been applied.</returns>
/// <exception cref="DocumentException">Error is raised when errors occur updating the source document.</exception>
Task<CsSource> ReplaceAsync(string sourceCode);
/// <summary>
/// Comments out the member hosting syntax.
/// </summary>
/// <param name="commentSyntax">Optional parameter that sets the syntax used to comment out the member defaults to '//'</param>
/// <returns>A newly loaded copy of the <see cref="CsSource"/> model after the member has been commented out.
/// This will return the current instance if the model was not loaded from source.</returns>
/// <exception cref="DocumentException">Error is raised when errors occur updating the source document.</exception>
Task<CsSource> CommentOutSyntaxAsync(string commentSyntax = "//");
/// <summary>
/// Gets the syntax that defined the member model.
/// </summary>
/// <returns>The syntax that makes up the member or null if the syntax cannot be loaded. This will be null if the model was not loaded from source code.</returns>
Task<string> GetMemberSyntaxAsync();
}
}