Beispiel #1
0
 /// <summary>
 /// Adds a new option specification.
 /// </summary>
 /// <param name="requirementLevel">The requirement level of the entry to add.</param>
 /// <param name="nameKind">The name kind to consider.</param>
 /// <param name="aliases">Aliases of the option to add.</param>
 public IOptionSpecSet AddOption(
     RequirementLevels requirementLevel,
     OptionNameKind nameKind,
     params string[] aliases)
 {
     return(AddOption(DataValueTypes.Text, requirementLevel, nameKind, aliases));
 }
Beispiel #2
0
 /// <summary>
 /// Adds a new option specification.
 /// </summary>
 /// <param name="requirementLevel">The requirement level of the entry to add.</param>
 /// <param name="aliases">Aliases of the option to add.</param>
 public IOptionSpecSet AddOption(
     RequirementLevels requirementLevel,
     params string[] aliases)
 {
     Add(new OptionSpec(requirementLevel, aliases));
     return(this);
 }
Beispiel #3
0
 /// <summary>
 /// Adds a new option specification.
 /// </summary>
 /// <param name="type">The type to consider.</param>
 /// <param name="requirementLevel">The requirement level of the option to consider.</param>
 /// <param name="nameKind">The name kind to consider.</param>
 /// <param name="aliases">Aliases of the option to add.</param>
 public IOptionSpecSet AddOption(
     Type type,
     RequirementLevels requirementLevel,
     OptionNameKind nameKind,
     params string[] aliases)
 {
     return(AddOption(type.GetValueType(), requirementLevel, nameKind, aliases));
 }
Beispiel #4
0
 /// <summary>
 /// Instantiates a new instance of the OptionSpec class.
 /// </summary>
 /// <param name="requirementLevel">The requirement level of the entry to add.</param>
 /// <param name="aliases">Aliases of the option to add.</param>
 public OptionSpec(
     RequirementLevels requirementLevel,
     params string[] aliases) : this(
         DataValueTypes.Text,
         requirementLevel,
         aliases.Any(p => p?.Contains(StringHelper.__PatternEmptyValue) == true) ? OptionNameKind.NameWithValue : OptionNameKind.OnlyName,
         aliases)
 {
 }
Beispiel #5
0
 /// <summary>
 /// Adds a new option specification.
 /// </summary>
 /// <param name="dataValueType">The value type to consider.</param>
 /// <param name="requirementLevel">The requirement level of the entry to consider.</param>
 /// <param name="nameKind">The name kind to consider.</param>
 /// <param name="aliases">Aliases of the option to add.</param>
 public IOptionSpecSet AddOption(
     DataValueTypes dataValueType,
     RequirementLevels requirementLevel,
     OptionNameKind nameKind,
     params string[] aliases)
 {
     Add(new OptionSpec(dataValueType, requirementLevel, nameKind, aliases));
     return(this);
 }
Beispiel #6
0
 /// <summary>
 /// Instantiates a new instance of the OptionSpec class.
 /// </summary>
 /// <param name="dataValueType">The value type to consider.</param>
 /// <param name="requirementLevel">The requirement level of the entry to consider.</param>
 /// <param name="nameKind">The name kind to consider.</param>
 /// <param name="aliases">Aliases of the option to add.</param>
 public OptionSpec(
     DataValueTypes dataValueType,
     RequirementLevels requirementLevel,
     OptionNameKind nameKind,
     params string[] aliases) : base()
 {
     Aliases           = (aliases ?? new string[1] {
         "{{*}}"
     }).ToList();
     MinimumItemNumber = nameKind.HasValue() ? 1 : 0;
     MaximumItemNumber = nameKind.HasName() ? 0 : 1;
     RequirementLevel  = requirementLevel;
 }
Beispiel #7
0
 /// <summary>
 /// Instantiates a new instance of the OptionSpec class.
 /// </summary>
 /// <param name="type">The type to consider.</param>
 /// <param name="requirementLevel">The requirement level of the option to consider.</param>
 /// <param name="nameKind">The name kind to consider.</param>
 /// <param name="aliases">Aliases of the option to add.</param>
 public OptionSpec(
     Type type,
     RequirementLevels requirementLevel,
     OptionNameKind nameKind,
     params string[] aliases) : this(type.GetValueType(), requirementLevel, nameKind, aliases)
 {
     if (type?.IsEnum == true)
     {
         ConstraintStatement = new DataConstraintStatement();
         ConstraintStatement.AddConstraint(
             null,
             "standard$" + KnownRoutineKind.ItemMustBeInList,
             ElementFactory.CreateSet(
                 ElementFactory.CreateScalar(DataValueTypes.Text, type.GetEnumFields())));
     }
 }
Beispiel #8
0
 /// <summary>
 /// Instantiates a new instance of the OptionSpec class.
 /// </summary>
 /// <param name="requirementLevel">The requirement level of the entry to add.</param>
 /// <param name="nameKind">The name kind to consider.</param>
 /// <param name="aliases">Aliases of the option to add.</param>
 public OptionSpec(
     RequirementLevels requirementLevel,
     OptionNameKind nameKind,
     params string[] aliases) : this(DataValueTypes.Text, requirementLevel, nameKind, aliases)
 {
 }
Beispiel #9
0
 /// <summary>
 /// Indicates whether the specified requirement level means that it is possible.
 /// </summary>
 /// <param name="requirementLevel">The requirement level to consider.</param>
 /// <returns>The result object.</returns>
 public static bool IsPossible(this RequirementLevels requirementLevel)
 {
     return((requirementLevel == RequirementLevels.Optional) ||
            (requirementLevel == RequirementLevels.OptionalExclusively) ||
            (requirementLevel == RequirementLevels.Required));
 }