private HydraClientFactory( ICollection <HypermediaProcessorFactory> hypermediaProcessorFactories = null, IIriTemplateExpansionStrategy iriTemplateExpansionStrategy = null, LinksPolicy?linksPolicy = null, HttpCallFacility httpCall = null) { _hypermediaProcessorInstances = new Dictionary <HypermediaProcessorFactory, IHypermediaProcessor>(); _hypermediaProcessorFactories = hypermediaProcessorFactories ?? new List <HypermediaProcessorFactory>(); _iriTemplateExpansionStrategy = iriTemplateExpansionStrategy; _linksPolicy = linksPolicy ?? LinksPolicy.Strict; _httpCall = httpCall; }
/// <summary>Initializes a new instance of the <see cref="HydraClient" /> class.</summary> /// <param name="hypermediaProcessors"> /// Hypermedia processors used for response hypermedia controls extraction. /// </param> /// <param name="iriTemplateExpansionStrategy">IRI template variable expansion strategy.</param> /// <param name="linksPolicy">Policy defining what is a considered a link.</param> /// <param name="httpCall">HTTP facility used to call remote server.</param> public HydraClient( IEnumerable <IHypermediaProcessor> hypermediaProcessors, IIriTemplateExpansionStrategy iriTemplateExpansionStrategy, LinksPolicy linksPolicy, HttpCallFacility httpCall) { _hypermediaProcessors = hypermediaProcessors ?? throw new ArgumentNullException(nameof(hypermediaProcessors)); if (!_hypermediaProcessors.Any()) { throw new ArgumentOutOfRangeException(NoHypermediaProcessors); } _iriTemplateExpansionStrategy = iriTemplateExpansionStrategy ?? throw new ArgumentNullException(nameof(iriTemplateExpansionStrategy), NoIriTemplateExpansionStrategy); _httpCall = httpCall ?? throw new ArgumentNullException(nameof(httpCall), NoHttpFacility); LinksPolicy = linksPolicy; }
/// <summary>Sets a <see cref="IIriTemplateExpansionStrategy" /> component.</summary> /// <param name="iriTemplateExpansionStrategy"> /// IRI template expansion strategy to be used when an IRI template is encountered. /// </param> /// <returns>This instance of the <see cref="HydraClientFactory" />.</returns> public HydraClientFactory With(IIriTemplateExpansionStrategy iriTemplateExpansionStrategy) { _iriTemplateExpansionStrategy = iriTemplateExpansionStrategy; return(this); }