e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
179 lines
5.6 KiB
C#
179 lines
5.6 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="CodeNamespace.cs" company="Microsoft">
|
|
//
|
|
// <OWNER>[....]</OWNER>
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.CodeDom {
|
|
|
|
using System.Diagnostics;
|
|
using System;
|
|
using Microsoft.Win32;
|
|
using System.Collections;
|
|
using System.Runtime.Serialization;
|
|
using System.Runtime.InteropServices;
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Represents a
|
|
/// namespace declaration.
|
|
/// </para>
|
|
/// </devdoc>
|
|
[
|
|
ClassInterface(ClassInterfaceType.AutoDispatch),
|
|
ComVisible(true),
|
|
Serializable,
|
|
]
|
|
public class CodeNamespace: CodeObject {
|
|
private string name;
|
|
private CodeNamespaceImportCollection imports = new CodeNamespaceImportCollection();
|
|
private CodeCommentStatementCollection comments = new CodeCommentStatementCollection();
|
|
private CodeTypeDeclarationCollection classes = new CodeTypeDeclarationCollection();
|
|
private CodeNamespaceCollection namespaces = new CodeNamespaceCollection();
|
|
|
|
private int populated = 0x0;
|
|
private const int ImportsCollection = 0x1;
|
|
private const int CommentsCollection = 0x2;
|
|
private const int TypesCollection = 0x4;
|
|
|
|
#if CODEDOM_NESTED_NAMESPACES
|
|
private const int NamespacesCollection = 0x8;
|
|
#endif
|
|
|
|
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// An event that will be fired the first time the Comments Collection is accessed.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public event EventHandler PopulateComments;
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// An event that will be fired the first time the Imports Collection is accessed.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public event EventHandler PopulateImports;
|
|
|
|
#if CODEDOM_NESTED_NAMESPACES
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// An event that will be fired the first time the Namespaces Collection is accessed.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public event EventHandler PopulateNamespaces;
|
|
#endif
|
|
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// An event that will be fired the first time the Types Collection is accessed.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public event EventHandler PopulateTypes;
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Initializes a new instance of <see cref='System.CodeDom.CodeNamespace'/>.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public CodeNamespace() {
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Initializes a new instance of <see cref='System.CodeDom.CodeNamespace'/> using the specified name.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public CodeNamespace(string name) {
|
|
Name = name;
|
|
}
|
|
|
|
private CodeNamespace(SerializationInfo info, StreamingContext context) {
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Gets or sets the collection of classes.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public CodeTypeDeclarationCollection Types {
|
|
get {
|
|
if (0 == (populated & TypesCollection)) {
|
|
populated |= TypesCollection;
|
|
if (PopulateTypes != null) PopulateTypes(this, EventArgs.Empty);
|
|
}
|
|
return classes;
|
|
}
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Gets or sets the collection of namespace imports used by the represented
|
|
/// namespace.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public CodeNamespaceImportCollection Imports {
|
|
get {
|
|
if (0 == (populated & ImportsCollection)) {
|
|
populated |= ImportsCollection;
|
|
if (PopulateImports != null) PopulateImports(this, EventArgs.Empty);
|
|
}
|
|
return imports;
|
|
}
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Gets or sets the name of the namespace.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public string Name {
|
|
get {
|
|
return (name == null) ? string.Empty : name;
|
|
}
|
|
set {
|
|
name = value;
|
|
}
|
|
}
|
|
|
|
|
|
#if CODEDOM_NESTED_NAMESPACES
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Gets or sets the collection of Namespaces.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public CodeNamespaceCollection Namespaces {
|
|
get {
|
|
if (0 == (populated & NamespacesCollection)) {
|
|
populated |= NamespacesCollection;
|
|
if (PopulateNamespaces != null) PopulateNamespaces(this, EventArgs.Empty);
|
|
}
|
|
return namespaces;
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Gets or sets the member comment collection members.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public CodeCommentStatementCollection Comments {
|
|
get {
|
|
if (0 == (populated & CommentsCollection)) {
|
|
populated |= CommentsCollection;
|
|
if (PopulateComments != null) PopulateComments(this, EventArgs.Empty);
|
|
}
|
|
return comments;
|
|
}
|
|
}
|
|
}
|
|
}
|