Taylohtio/AlertManager/SPSolutions.SharePoint.Aler.../SPSolutions.SharePoint/SPSolutions.SharePoint.Admi.../CommandLineParameter.cs

88 lines
1.7 KiB
C#

using System;
using System.Collections.Specialized;
namespace SPSolutions.SharePoint.Administration
{
public class CommandLineParameter
{
private string defaultValue;
private string helpMessage;
private bool isRequired;
private string name;
private bool userTypedIn;
private CommandLineParameterValidator validator;
private string value;
public string DefaultValue
{
get
{
return this.defaultValue;
}
}
public string HelpMessage
{
get
{
return this.helpMessage;
}
}
public bool IsRequired
{
get
{
return this.isRequired;
}
}
public string Name
{
get
{
return this.name;
}
}
public bool UserTypedIn
{
get
{
return this.userTypedIn;
}
}
public string Value
{
get
{
return this.value;
}
}
public CommandLineParameter(string name, bool isRequired) : this(name, isRequired, null, null, null)
{
}
public CommandLineParameter(string name, bool isRequired, string defaultValue) : this(name, isRequired, defaultValue, null, null)
{
}
public CommandLineParameter(string name, bool isRequired, string defaultValue, CommandLineParameterValidator validator, string helpMessage)
{
this.name = name;
this.isRequired = isRequired;
this.defaultValue = defaultValue;
this.validator = validator;
if (!string.IsNullOrEmpty(helpMessage))
{
this.helpMessage = helpMessage;
}
}
public void Initialize(StringDictionary keyValues)
{
this.value = keyValues[this.name];
this.userTypedIn = (this.value != null);
if (!this.userTypedIn)
{
this.value = this.defaultValue;
}
}
public bool Validate()
{
return this.validator == null || this.validator.Validate(this.value);
}
}
}