/// <summary> /// Creates a <see cref="EqualsCondition"/>. /// </summary> /// <param name="conditionalParameterClause"> /// A match from <see cref="ConditionalParameterClausePattern"/>. /// </param> /// <param name="parameterDefinitions">All parameter definitions.</param> /// <returns>The created <see cref="EqualsCondition"/>.</returns> private static EqualsCondition CreateCondition( Match conditionalParameterClause, List <IParameterNode> parameterDefinitions) { var parentIdentifier = conditionalParameterClause.Groups[ParameterConfigurationSpaceConverter.ParentGroupName].Value; var domain = ParameterConfigurationSpaceConverter.FindParameterDomain(parameterDefinitions, parentIdentifier); var valueSpecifications = conditionalParameterClause.Groups[ParameterConfigurationSpaceConverter.ValueGroupName].Value .Split(',') .Select(value => value.Trim()); return(new EqualsCondition( parentIdentifier, valueSpecifications.Select(value => ParameterConfigurationSpaceConverter.TransformValueToAllele(domain, value)))); }
/// <summary> /// Creates a <see cref="ForbiddenParameterCombination"/>. /// </summary> /// <param name="forbiddenParameterClause"> /// A match from <see cref="ForbiddenParameterClausePattern"/>. /// </param> /// <param name="parameterDefinitions">All parameter definitions.</param> /// <returns>The created <see cref="ForbiddenParameterCombination"/>.</returns> private static ForbiddenParameterCombination CreateForbiddenParameterClause( Match forbiddenParameterClause, List <IParameterNode> parameterDefinitions) { var completeSpecification = forbiddenParameterClause.Groups[ParameterConfigurationSpaceConverter.CombinationGroupName].Value; var assignmentMatches = ParameterConfigurationSpaceConverter.AssignmentPattern.Matches(completeSpecification); var forbiddenCombination = new Dictionary <string, IAllele>(); foreach (Match match in assignmentMatches) { var identifier = match.Groups[ParameterConfigurationSpaceConverter.ParameterGroupName].Value; var value = match.Groups[ParameterConfigurationSpaceConverter.ValueGroupName].Value; var domain = ParameterConfigurationSpaceConverter.FindParameterDomain(parameterDefinitions, identifier); forbiddenCombination[identifier] = ParameterConfigurationSpaceConverter.TransformValueToAllele(domain, value); } return(new ForbiddenParameterCombination(forbiddenCombination)); }