Cosmos/source/Cosmos.BuildEngine/CosmosBuildOptions.cs
2009-06-14 16:22:37 +00:00

62 lines
No EOL
2 KiB
C#

using System;
using System.Collections.Generic;
namespace Cosmos.BuildEngine
{
public abstract class BuildOption
{
public readonly String OptionName;
public readonly String OptionDescription;
public BuildOption(String Name, String Description)
{
OptionName = Name;
OptionDescription = Description;
}
}
public sealed class BuildOption_Boolean : BuildOption
{
public readonly bool OptionValue;
public BuildOption_Boolean(String Name, String Description, bool DefaultValue)
: base(Name, Description)
{
OptionValue = DefaultValue;
}
}
public sealed class BuildOption_SelectOne : BuildOption
{
public readonly String OptionValue;
public readonly String[] OptionOptions;
public BuildOption_SelectOne(String Name, String Description, String[] Options, int DefaultOption)
: base(Name, Description)
{
OptionOptions = Options;
OptionValue = OptionOptions[DefaultOption];
}
}
public sealed class BuildOption_String : BuildOption
{
public readonly String OptionValue;
public delegate bool dVerifyOption(String OptionValue, out String VerificationFailureMessage);
public readonly dVerifyOption OptionVerifier;
public BuildOption_String(String Name, String Description, String DefaultValue)
: base(Name, Description)
{
OptionValue = DefaultValue;
OptionVerifier = delegate(String optionvalue, out String VerificationFailureMessage)
{
VerificationFailureMessage = "";
return true;
};
}
public BuildOption_String(String Name, String Description, String DefaultValue, dVerifyOption Verifier)
: base(Name, Description)
{
OptionValue = DefaultValue;
OptionVerifier = Verifier;
}
}
}