/********************************************************************++ Copyright (c) Microsoft Corporation. All rights reserved. --********************************************************************/ using System.Xml; using System.Diagnostics.CodeAnalysis; // for fxcop namespace System.Management.Automation { /// /// /// Class GeneralHelpInfo keeps track of help information to be returned by /// general help provider. /// /// internal class GeneralHelpInfo : HelpInfo { /// /// Constructor for GeneralHelpInfo /// /// /// This constructor is can be called only from constructors of derived class /// for GeneralHelpInfo. The only way to to create a GeneralHelpInfo is through /// static function /// Load(XmlNode node) /// where some sanity check is done. /// [SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Justification = "This is internal and the code path is verified.")] protected GeneralHelpInfo(XmlNode xmlNode) { MamlNode mamlNode = new MamlNode(xmlNode); _fullHelpObject = mamlNode.PSObject; this.Errors = mamlNode.Errors; _fullHelpObject.TypeNames.Clear(); _fullHelpObject.TypeNames.Add(string.Format(Globalization.CultureInfo.InvariantCulture, "GeneralHelpInfo#{0}", Name)); _fullHelpObject.TypeNames.Add("GeneralHelpInfo"); _fullHelpObject.TypeNames.Add("HelpInfo"); } #region Basic Help Properties /// /// Name of help content. /// /// Name of help content internal override string Name { get { if (_fullHelpObject == null) return ""; if (_fullHelpObject.Properties["Title"] == null) return ""; if (_fullHelpObject.Properties["Title"].Value == null) return ""; string name = _fullHelpObject.Properties["Title"].Value.ToString(); if (name == null) return ""; return name.Trim(); } } /// /// Synopsis for this general help. /// /// Synopsis for this general help internal override string Synopsis { get { return ""; } } /// /// Help category for this general help, which is constantly HelpCategory.General. /// /// Help category for general help internal override HelpCategory HelpCategory { get { return HelpCategory.General; } } private PSObject _fullHelpObject; /// /// Full help object for this help item. /// /// Full help object for this help item. internal override PSObject FullHelp { get { return _fullHelpObject; } } #endregion #region Load /// /// Create a GeneralHelpInfo object from an XmlNode. /// /// xmlNode that contains help info /// GeneralHelpInfo object created internal static GeneralHelpInfo Load(XmlNode xmlNode) { GeneralHelpInfo generalHelpInfo = new GeneralHelpInfo(xmlNode); if (String.IsNullOrEmpty(generalHelpInfo.Name)) return null; generalHelpInfo.AddCommonHelpProperties(); return generalHelpInfo; } #endregion } }