/// <summary> /// Instantiates. /// </summary> /// <param name="chain">the chain this entry belongs to</param> /// <param name="prevEntry">the previous one</param> /// <param name="nextEntry">the next one</param> /// <param name="name">the name of this entry</param> /// <param name="filter">the associated <typeparamref name="TFilter"/></param> /// <param name="nextFilterFactory">the factory to create <typeparamref name="TNextFilter"/> by (entry)</param> public Entry(TChain chain, Entry prevEntry, Entry nextEntry, string name, TFilter filter, Func <Entry, TNextFilter> nextFilterFactory) { if (filter == null) { throw new ArgumentNullException(nameof(filter)); } Chain = chain; PrevEntry = prevEntry; NextEntry = nextEntry; Name = name ?? throw new ArgumentNullException(nameof(name)); _filter = filter; NextFilter = nextFilterFactory(this); }
/// <summary> /// Instantiates. /// </summary> /// <param name="chain">the chain this entry belongs to</param> /// <param name="prevEntry">the previous one</param> /// <param name="nextEntry">the next one</param> /// <param name="name">the name of this entry</param> /// <param name="filter">the associated <typeparamref name="TFilter"/></param> /// <param name="nextFilterFactory">the factory to create <typeparamref name="TNextFilter"/> by (entry)</param> public Entry(TChain chain, Entry prevEntry, Entry nextEntry, String name, TFilter filter, Func <Entry, TNextFilter> nextFilterFactory) { if (filter == null) { throw new ArgumentNullException("filter"); } if (name == null) { throw new ArgumentNullException("name"); } _chain = chain; _prevEntry = prevEntry; _nextEntry = nextEntry; _name = name; _filter = filter; _nextFilter = nextFilterFactory(this); }