public static IEnumerable <IRangeDescriptor> Create(Color baseColor, IEnumerable <object> values) { var factory = new RangeDescriptorFactory(baseColor, values); List <IRangeDescriptor> descriptors = new List <IRangeDescriptor>(); IRangeDescriptor next = null; while (null != (next = factory.Next())) { descriptors.Add(next); } return(descriptors); }
private void Visit(IRangeDescriptor descriptor) { string notation; if (!AllowedFieldNumberRanges.All(range => range.Contains(descriptor))) { // TODO: TBD: add more descriptive bits... notation = Join(", ", AllowedFieldNumberRanges.Select(y => y.ToRangeNotation())); throw new InvalidOperationException($"{descriptor.ToRangeNotation()} out of valid range(s) {notation}."); } if (!DefaultReservedRanges.Any(range => range.TryIntersect(descriptor, out _))) { return; } notation = Join(", ", DefaultReservedRanges.Where(range => range.TryIntersect(descriptor, out _)) .Select(range => range.ToRangeNotation())); throw new InvalidOperationException( $"{descriptor.ToRangeNotation()} cannot fall within reserved range {notation}."); }
public RangeNodeFactory( IScaleDescriptor owner, IRangeDescriptor range ) { _owner = owner; _range = range; }
public RangeNodeFactory(IScaleDescriptor owner, IRangeDescriptor range) { _owner = owner; _range = range; }