From e6366800d31048facde9dfe18a913b5c1bf54074 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 9 Jul 2014 16:58:59 +0200 Subject: [PATCH] favor an already instantiated instance of ElasticInferer on settings instead of newing one everytime in various places --- src/Nest/DSL/Paths/DocumentOptionalPathDescriptor.cs | 4 ++-- src/Nest/DSL/Paths/FixedIndexTypePathDescriptor.cs | 2 +- src/Nest/DSL/Visitor/DslPrettyPrintVisitor.cs | 2 +- src/Nest/Domain/Connection/ConnectionSettings.cs | 4 ++++ src/Nest/Domain/Connection/IConnectionSettingsValues.cs | 1 + src/Nest/Domain/Paths/FieldSelection.cs | 2 +- src/Nest/Domain/Responses/BaseResponse.cs | 2 +- src/Nest/ElasticClient.cs | 2 +- .../QueryParsers/Visitor/DslPrettyPrintVisitor.cs | 2 +- 9 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/Nest/DSL/Paths/DocumentOptionalPathDescriptor.cs b/src/Nest/DSL/Paths/DocumentOptionalPathDescriptor.cs index 35a7b9179c6..0ee769c2216 100644 --- a/src/Nest/DSL/Paths/DocumentOptionalPathDescriptor.cs +++ b/src/Nest/DSL/Paths/DocumentOptionalPathDescriptor.cs @@ -31,7 +31,7 @@ public static void SetRouteParameters( ElasticsearchPathInfo pathInfo) where TParameters : IRequestParameters, new() { - var inferrer = new ElasticInferrer(settings); + var inferrer = settings.Inferrer; pathInfo.Index = inferrer.IndexName(path.Index); pathInfo.Type = inferrer.TypeName(path.Type); @@ -45,7 +45,7 @@ public static void SetRouteParameters( where TParameters : IRequestParameters, new() where T : class { - var inferrer = new ElasticInferrer(settings); + var inferrer = settings.Inferrer; var index = path.Index != null ? inferrer.IndexName(path.Index) : inferrer.IndexName(); var type = path.Type != null ? inferrer.TypeName(path.Type) : inferrer.TypeName(); diff --git a/src/Nest/DSL/Paths/FixedIndexTypePathDescriptor.cs b/src/Nest/DSL/Paths/FixedIndexTypePathDescriptor.cs index fa7aa8af77d..66fa0f389f4 100644 --- a/src/Nest/DSL/Paths/FixedIndexTypePathDescriptor.cs +++ b/src/Nest/DSL/Paths/FixedIndexTypePathDescriptor.cs @@ -21,7 +21,7 @@ public static void SetRouteParameters( ElasticsearchPathInfo pathInfo) where TParameters : IRequestParameters, new() { - var inferrer = new ElasticInferrer(settings); + var inferrer = settings.Inferrer; var index = inferrer.IndexName(path.Index); var type = inferrer.TypeName(path.Type); diff --git a/src/Nest/DSL/Visitor/DslPrettyPrintVisitor.cs b/src/Nest/DSL/Visitor/DslPrettyPrintVisitor.cs index d737d1432cc..c77a73350fa 100644 --- a/src/Nest/DSL/Visitor/DslPrettyPrintVisitor.cs +++ b/src/Nest/DSL/Visitor/DslPrettyPrintVisitor.cs @@ -25,7 +25,7 @@ public string PrettyPrint public DslPrettyPrintVisitor(IConnectionSettingsValues settings) { this._sb = new StringBuilder(); - this._infer = new ElasticInferrer(settings); + this._infer = settings.Inferrer; } public virtual int Depth { get; set; } diff --git a/src/Nest/Domain/Connection/ConnectionSettings.cs b/src/Nest/Domain/Connection/ConnectionSettings.cs index c3a92895711..12cc99c553e 100644 --- a/src/Nest/Domain/Connection/ConnectionSettings.cs +++ b/src/Nest/Domain/Connection/ConnectionSettings.cs @@ -64,6 +64,9 @@ string IConnectionSettingsValues.DefaultIndex } } + private ElasticInferrer _inferrer; + ElasticInferrer IConnectionSettingsValues.Inferrer { get { return _inferrer; } } + private Func _defaultTypeNameInferrer; Func IConnectionSettingsValues.DefaultTypeNameInferrer { get { return _defaultTypeNameInferrer; } } @@ -97,6 +100,7 @@ public ConnectionSettings(IConnectionPool connectionPool, string defaultIndex) : this._modifyJsonSerializerSettings = (j) => { }; this._contractConverters = Enumerable.Empty>().ToList().AsReadOnly(); + this._inferrer = new ElasticInferrer(this); } public ConnectionSettings(Uri uri, string defaultIndex) : this(new SingleNodeConnectionPool(uri ?? new Uri("http://localhost:9200")), defaultIndex) diff --git a/src/Nest/Domain/Connection/IConnectionSettingsValues.cs b/src/Nest/Domain/Connection/IConnectionSettingsValues.cs index 9491eb96f34..f69251d1931 100644 --- a/src/Nest/Domain/Connection/IConnectionSettingsValues.cs +++ b/src/Nest/Domain/Connection/IConnectionSettingsValues.cs @@ -7,6 +7,7 @@ namespace Nest { public interface IConnectionSettingsValues : IConnectionConfigurationValues { + ElasticInferrer Inferrer { get; } FluentDictionary DefaultIndices { get; } FluentDictionary DefaultTypeNames { get; } string DefaultIndex { get; } diff --git a/src/Nest/Domain/Paths/FieldSelection.cs b/src/Nest/Domain/Paths/FieldSelection.cs index 3168386b740..a630260e212 100644 --- a/src/Nest/Domain/Paths/FieldSelection.cs +++ b/src/Nest/Domain/Paths/FieldSelection.cs @@ -30,7 +30,7 @@ public class FieldSelection : IFieldSelection private ElasticInferrer Infer { get; set; } public FieldSelection(IConnectionSettingsValues settings, IDictionary valuesDictionary = null) { - this.Infer = new ElasticInferrer(settings); + this.Infer = settings.Inferrer; ((IFieldSelection)this).FieldValuesDictionary = valuesDictionary; } diff --git a/src/Nest/Domain/Responses/BaseResponse.cs b/src/Nest/Domain/Responses/BaseResponse.cs index 513475bedb4..c392ccf3ff1 100644 --- a/src/Nest/Domain/Responses/BaseResponse.cs +++ b/src/Nest/Domain/Responses/BaseResponse.cs @@ -72,7 +72,7 @@ public ElasticInferrer Infer var settings = this.Settings; if (settings == null) return null; - this._infer = new ElasticInferrer(settings); + this._infer = this.Settings.Inferrer; return this._infer; } } diff --git a/src/Nest/ElasticClient.cs b/src/Nest/ElasticClient.cs index 798c2b62e37..3c838af461d 100644 --- a/src/Nest/ElasticClient.cs +++ b/src/Nest/ElasticClient.cs @@ -54,7 +54,7 @@ public ElasticClient( this.Serializer ); this.RawDispatch = new RawDispatch(this.Raw); - this.Infer = new ElasticInferrer(this._connectionSettings); + this.Infer = this._connectionSettings.Inferrer; } diff --git a/src/Tests/Nest.Tests.Unit/QueryParsers/Visitor/DslPrettyPrintVisitor.cs b/src/Tests/Nest.Tests.Unit/QueryParsers/Visitor/DslPrettyPrintVisitor.cs index a758b9bf2fa..5531caa7011 100644 --- a/src/Tests/Nest.Tests.Unit/QueryParsers/Visitor/DslPrettyPrintVisitor.cs +++ b/src/Tests/Nest.Tests.Unit/QueryParsers/Visitor/DslPrettyPrintVisitor.cs @@ -31,7 +31,7 @@ public string PrettyPrint public DslPrettyPrintVisitor(IConnectionSettingsValues settings) { this._sb = new StringBuilder(); - this._infer = new ElasticInferrer(settings); + this._infer = settings.Inferrer; } public virtual int Depth { get; set; }