Exemple #1
0
        /// <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))));
        }
Exemple #2
0
        /// <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));
        }