Team Ai
Datasetpublic

MegaBites-AI/Windows-powershell

sourceHugging Facemitupdated 6mo agoView on Hugging Face
0likes372downloads
MamlClassHelpInfo.cs135 linesDownload Raw Back to help
1// Copyright (c) Microsoft Corporation.2// Licensed under the MIT License.3 4using System.Xml;5 6namespace System.Management.Automation7{8    /// <summary>9    /// Class MamlClassHelpInfo keeps track of help information to be returned by10    /// class help provider.11    /// </summary>12    internal class MamlClassHelpInfo : HelpInfo13    {14        /// <summary>15        /// Constructor for custom HelpInfo object creation.16        /// </summary>17        /// <param name="helpObject"></param>18        /// <param name="helpCategory"></param>19        internal MamlClassHelpInfo(PSObject helpObject, HelpCategory helpCategory)20        {21            HelpCategory = helpCategory;22            _fullHelpObject = helpObject;23        }24 25        /// <summary>26        /// Convert a XMLNode to HelpInfo object.27        /// </summary>28        /// <param name="xmlNode"></param>29        /// <param name="helpCategory"></param>30        private MamlClassHelpInfo(XmlNode xmlNode, HelpCategory helpCategory)31        {32            HelpCategory = helpCategory;33 34            MamlNode mamlNode = new MamlNode(xmlNode);35            _fullHelpObject = mamlNode.PSObject;36 37            this.Errors = mamlNode.Errors;38            _fullHelpObject.TypeNames.Clear();39            _fullHelpObject.TypeNames.Add("PSClassHelpInfo");40        }41 42        /// <summary>43        /// PSObject representation on help.44        /// </summary>45        private readonly PSObject _fullHelpObject;46 47        #region Load48 49        /// <summary>50        /// Create a MamlClassHelpInfo object from an XmlNode.51        /// </summary>52        /// <param name="xmlNode">XmlNode that contains help info.</param>53        /// <param name="helpCategory">Help category this maml object fits into.</param>54        /// <returns>MamlCommandHelpInfo object created.</returns>55        internal static MamlClassHelpInfo Load(XmlNode xmlNode, HelpCategory helpCategory)56        {57            MamlClassHelpInfo mamlClassHelpInfo = new MamlClassHelpInfo(xmlNode, helpCategory);58 59            if (string.IsNullOrEmpty(mamlClassHelpInfo.Name))60                return null;61 62            mamlClassHelpInfo.AddCommonHelpProperties();63 64            return mamlClassHelpInfo;65        }66 67        #endregion68 69        #region Helper Methods and Overloads70 71        /// <summary>72        /// Clone the help info object.73        /// </summary>74        /// <returns>MamlClassHelpInfo object.</returns>75        internal MamlClassHelpInfo Copy()76        {77            MamlClassHelpInfo result = new MamlClassHelpInfo(_fullHelpObject.Copy(), this.HelpCategory);78            return result;79        }80 81        /// <summary>82        /// Clone the help object with a new category.83        /// </summary>84        /// <param name="newCategoryToUse"></param>85        /// <returns>MamlClassHelpInfo.</returns>86        internal MamlClassHelpInfo Copy(HelpCategory newCategoryToUse)87        {88            MamlClassHelpInfo result = new MamlClassHelpInfo(_fullHelpObject.Copy(), newCategoryToUse);89            result.FullHelp.Properties["Category"].Value = newCategoryToUse.ToString();90            return result;91        }92 93        internal override string Name94        {95            get96            {97                string tempName = string.Empty;98                var title = _fullHelpObject.Properties["title"];99 100                if (title != null && title.Value != null)101                {102                    tempName = title.Value.ToString();103                }104 105                return tempName;106            }107        }108 109        internal override string Synopsis110        {111            get112            {113                string tempSynopsis = string.Empty;114                var intro = _fullHelpObject.Properties["introduction"];115 116                if (intro != null && intro.Value != null)117                {118                    tempSynopsis = intro.Value.ToString();119                }120 121                return tempSynopsis;122            }123        }124 125        internal override HelpCategory HelpCategory { get; }126 127        internal override PSObject FullHelp128        {129            get { return _fullHelpObject; }130        }131 132        #endregion133    }134}135