/********************************************************************++
Copyright (c) Microsoft Corporation. All rights reserved.
--********************************************************************/
using System.Diagnostics.CodeAnalysis; // for fxcop
namespace System.Management.Automation
{
///
/// Stores help information related to Alias Commands.
///
internal class AliasHelpInfo : HelpInfo
{
///
/// Initializes a new instance of the AliasHelpInfo class.
///
///
///
/// The constructor is private. The only way to create an
/// AliasHelpInfo object is through static method
///
[SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
private AliasHelpInfo(AliasInfo aliasInfo)
{
_fullHelpObject = new PSObject();
string name = (aliasInfo.ResolvedCommand == null) ? aliasInfo.UnresolvedCommandName : aliasInfo.ResolvedCommand.Name;
this.ForwardTarget = name;
// A Cmdlet/Function/Script etc can have alias.
this.ForwardHelpCategory = HelpCategory.Cmdlet |
HelpCategory.Function | HelpCategory.ExternalScript | HelpCategory.ScriptCommand | HelpCategory.Filter | HelpCategory.Workflow;
if (!String.IsNullOrEmpty(aliasInfo.Name))
{
Name = aliasInfo.Name.Trim();
}
if (!String.IsNullOrEmpty(name))
{
Synopsis = name.Trim();
}
_fullHelpObject.TypeNames.Clear();
_fullHelpObject.TypeNames.Add(string.Format(Globalization.CultureInfo.InvariantCulture,
"AliasHelpInfo#{0}", Name));
_fullHelpObject.TypeNames.Add("AliasHelpInfo");
_fullHelpObject.TypeNames.Add("HelpInfo");
}
///
/// Returns the name of alias help.
///
/// Name of alias help.
internal override string Name { get; } = "";
///
/// Returns synopsis of alias help.
///
/// Synopsis of alias help.
internal override string Synopsis { get; } = "";
///
/// Help category for alias help. This is always HelpCategory.Alias
///
/// Help category for alias help
internal override HelpCategory HelpCategory
{
get
{
return HelpCategory.Alias;
}
}
private PSObject _fullHelpObject;
///
/// Returns full help object for alias help.
///
/// Full help object of alias help.
internal override PSObject FullHelp
{
get
{
return _fullHelpObject;
}
}
///
/// Creates an AliasHelpInfo instance based on an AliasInfo object.
/// This is the only way to create AliasHelpInfo object from outside this class.
///
/// AliasInfo object for which to create AliasHelpInfo object.
/// AliasHelpInfo object.
internal static AliasHelpInfo GetHelpInfo(AliasInfo aliasInfo)
{
if (aliasInfo == null)
return null;
if (aliasInfo.ResolvedCommand == null && aliasInfo.UnresolvedCommandName == null)
return null;
AliasHelpInfo aliasHelpInfo = new AliasHelpInfo(aliasInfo);
if (String.IsNullOrEmpty(aliasHelpInfo.Name))
return null;
aliasHelpInfo.AddCommonHelpProperties();
return aliasHelpInfo;
}
}
}