2016-03-30 14:20:52 -07:00
|
|
|
/********************************************************************++
|
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
|
--********************************************************************/
|
2016-07-29 13:02:49 -07:00
|
|
|
|
2016-03-30 14:20:52 -07:00
|
|
|
using Dbg = System.Management.Automation.Diagnostics;
|
|
|
|
|
|
|
|
|
|
namespace System.Management.Automation
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The ProviderCommandHelpInfo class.
|
|
|
|
|
/// </summary>
|
|
|
|
|
internal class ProviderCommandHelpInfo : HelpInfo
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Help info.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private HelpInfo _helpInfo;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Constructor for ProviderCommandHelpInfo.
|
|
|
|
|
/// </summary>
|
|
|
|
|
internal ProviderCommandHelpInfo(HelpInfo genericHelpInfo, ProviderContext providerContext)
|
|
|
|
|
{
|
|
|
|
|
Dbg.Assert(genericHelpInfo != null, "Expected genericHelpInfo != null");
|
|
|
|
|
Dbg.Assert(providerContext != null, "Expected providerContext != null");
|
|
|
|
|
|
|
|
|
|
// This should be set to None to prevent infinite forwarding.
|
|
|
|
|
this.ForwardHelpCategory = HelpCategory.None;
|
|
|
|
|
|
|
|
|
|
// Now pick which help we should show.
|
|
|
|
|
MamlCommandHelpInfo providerSpecificHelpInfo =
|
|
|
|
|
providerContext.GetProviderSpecificHelpInfo(genericHelpInfo.Name);
|
|
|
|
|
if (providerSpecificHelpInfo == null)
|
|
|
|
|
{
|
|
|
|
|
_helpInfo = genericHelpInfo;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
providerSpecificHelpInfo.OverrideProviderSpecificHelpWithGenericHelp(genericHelpInfo);
|
|
|
|
|
_helpInfo = providerSpecificHelpInfo;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Get parameter.
|
|
|
|
|
/// </summary>
|
2016-08-02 19:00:50 -07:00
|
|
|
internal override PSObject[] GetParameter(string pattern)
|
2016-03-30 14:20:52 -07:00
|
|
|
{
|
|
|
|
|
return _helpInfo.GetParameter(pattern);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Returns the Uri used by get-help cmdlet to show help
|
|
|
|
|
/// online. Returns only the first uri found under
|
|
|
|
|
/// RelatedLinks.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>
|
2017-01-16 13:31:14 -08:00
|
|
|
/// Null if no Uri is specified by the helpinfo or a
|
2016-03-30 14:20:52 -07:00
|
|
|
/// valid Uri.
|
|
|
|
|
/// </returns>
|
2016-08-02 19:00:50 -07:00
|
|
|
internal override Uri GetUriForOnlineHelp()
|
2016-03-30 14:20:52 -07:00
|
|
|
{
|
|
|
|
|
return _helpInfo.GetUriForOnlineHelp();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The Name property.
|
|
|
|
|
/// </summary>
|
2016-08-02 19:00:50 -07:00
|
|
|
internal override string Name
|
2016-03-30 14:20:52 -07:00
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _helpInfo.Name;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The Synopsis property.
|
|
|
|
|
/// </summary>
|
2016-08-02 19:00:50 -07:00
|
|
|
internal override string Synopsis
|
2016-03-30 14:20:52 -07:00
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _helpInfo.Synopsis;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The HelpCategory property.
|
|
|
|
|
/// </summary>
|
2016-08-02 19:00:50 -07:00
|
|
|
internal override HelpCategory HelpCategory
|
2016-03-30 14:20:52 -07:00
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _helpInfo.HelpCategory;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The FullHelp property.
|
|
|
|
|
/// </summary>
|
2016-08-02 19:00:50 -07:00
|
|
|
internal override PSObject FullHelp
|
2016-03-30 14:20:52 -07:00
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _helpInfo.FullHelp;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The Component property.
|
|
|
|
|
/// </summary>
|
2016-08-02 19:00:50 -07:00
|
|
|
internal override string Component
|
2016-03-30 14:20:52 -07:00
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _helpInfo.Component;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The Role property.
|
|
|
|
|
/// </summary>
|
2016-08-02 19:00:50 -07:00
|
|
|
internal override string Role
|
2016-03-30 14:20:52 -07:00
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _helpInfo.Role;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The Functionality property.
|
|
|
|
|
/// </summary>
|
2016-08-02 19:00:50 -07:00
|
|
|
internal override string Functionality
|
2016-03-30 14:20:52 -07:00
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _helpInfo.Functionality;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|