public static SpecialCharValues Create(SpecialCharFlags flags, ModifierElement modifier) { return(new SpecialCharValues { Flags = flags, ModifierElement = modifier }); }
/// <summary> /// Create a print mode modifier element. /// </summary> /// <param name="element">The element to create.</param> /// <returns>The created modifier.</returns> public virtual IModifier CreateModifier(ModifierElement element) { throw new NotImplementedException(); }
/// <summary> /// Resolves the pseudo selector by element /// </summary> private ModifierBase resolveModifier(ModifierElement element) { var descriptors = DescriptorRepository.GetModifierDescriptors(); var elements = descriptors.Where(descriptor => NameMatcher.Match(descriptor.Value, element.Name)) .Where(descriptor => descriptor.Arguments.Count() == element.Arguments.Count()) .Select(pseudo => new { pseudo.Type, Arguments = element.Arguments.Select(createModifierSelectorArgument) }) .ToArray(); if (elements.Length > 1) throw new Exception($"Ambiguity of modifier selector: {element.Name}"); if (!elements.Any()) throw new Exception($"Not found modifier selector: {element.Name}"); var modifier = elements.Single(); return SelectorFactory.CreateModifier(modifier.Type, modifier.Arguments); }