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