MegaBites-AI/Windows-powershell
0372
1// Copyright (c) Microsoft Corporation.2// Licensed under the MIT License.3 4using Dbg = System.Management.Automation.Diagnostics;5 6namespace System.Management.Automation7{8 /// <summary>9 /// The ProviderCommandHelpInfo class.10 /// </summary>11 internal class ProviderCommandHelpInfo : HelpInfo12 {13 /// <summary>14 /// Help info.15 /// </summary>16 private readonly HelpInfo _helpInfo;17 18 /// <summary>19 /// Constructor for ProviderCommandHelpInfo.20 /// </summary>21 internal ProviderCommandHelpInfo(HelpInfo genericHelpInfo, ProviderContext providerContext)22 {23 Dbg.Assert(genericHelpInfo != null, "Expected genericHelpInfo != null");24 Dbg.Assert(providerContext != null, "Expected providerContext != null");25 26 // This should be set to None to prevent infinite forwarding.27 this.ForwardHelpCategory = HelpCategory.None;28 29 // Now pick which help we should show.30 MamlCommandHelpInfo providerSpecificHelpInfo =31 providerContext.GetProviderSpecificHelpInfo(genericHelpInfo.Name);32 if (providerSpecificHelpInfo == null)33 {34 _helpInfo = genericHelpInfo;35 }36 else37 {38 providerSpecificHelpInfo.OverrideProviderSpecificHelpWithGenericHelp(genericHelpInfo);39 _helpInfo = providerSpecificHelpInfo;40 }41 }42 43 /// <summary>44 /// Get parameter.45 /// </summary>46 internal override PSObject[] GetParameter(string pattern)47 {48 return _helpInfo.GetParameter(pattern);49 }50 51 /// <summary>52 /// Returns the Uri used by get-help cmdlet to show help53 /// online. Returns only the first uri found under54 /// RelatedLinks.55 /// </summary>56 /// <returns>57 /// Null if no Uri is specified by the helpinfo or a58 /// valid Uri.59 /// </returns>60 internal override Uri GetUriForOnlineHelp()61 {62 return _helpInfo.GetUriForOnlineHelp();63 }64 65 /// <summary>66 /// The Name property.67 /// </summary>68 internal override string Name69 {70 get71 {72 return _helpInfo.Name;73 }74 }75 76 /// <summary>77 /// The Synopsis property.78 /// </summary>79 internal override string Synopsis80 {81 get82 {83 return _helpInfo.Synopsis;84 }85 }86 87 /// <summary>88 /// The HelpCategory property.89 /// </summary>90 internal override HelpCategory HelpCategory91 {92 get93 {94 return _helpInfo.HelpCategory;95 }96 }97 98 /// <summary>99 /// The FullHelp property.100 /// </summary>101 internal override PSObject FullHelp102 {103 get104 {105 return _helpInfo.FullHelp;106 }107 }108 109 /// <summary>110 /// The Component property.111 /// </summary>112 internal override string Component113 {114 get115 {116 return _helpInfo.Component;117 }118 }119 120 /// <summary>121 /// The Role property.122 /// </summary>123 internal override string Role124 {125 get126 {127 return _helpInfo.Role;128 }129 }130 131 /// <summary>132 /// The Functionality property.133 /// </summary>134 internal override string Functionality135 {136 get137 {138 return _helpInfo.Functionality;139 }140 }141 }142}143 