Skip to content

Commit a0595b9

Browse files
committed
CSHARP-5572: Rename KnownSerializer to NodeSerializer at reviewer's request
1 parent 70fde9b commit a0595b9

27 files changed

+246
-245
lines changed
Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,48 +14,47 @@
1414
*/
1515

1616
using System.Linq.Expressions;
17-
using MongoDB.Bson;
1817
using MongoDB.Driver.Linq.Linq3Implementation.Serializers;
1918
using ExpressionVisitor = System.Linq.Expressions.ExpressionVisitor;
2019

21-
namespace MongoDB.Driver.Linq.Linq3Implementation.KnownSerializerFinders;
20+
namespace MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders;
2221

23-
internal class UnknownSerializerFinder : ExpressionVisitor
22+
internal class MissingSerializerFinder : ExpressionVisitor
2423
{
25-
public static Expression FindExpressionWithUnknownSerializer(Expression expression, KnownSerializerMap knownSerializers)
24+
public static Expression FindExpressionWithMissingSerializer(Expression expression, SerializerMap nodeSerializers)
2625
{
27-
var visitor = new UnknownSerializerFinder(knownSerializers);
26+
var visitor = new MissingSerializerFinder(nodeSerializers);
2827
visitor.Visit(expression);
29-
return visitor._expressionWithUnknownSerializer;
28+
return visitor._expressionWithMissingSerializer;
3029
}
3130

32-
private Expression _expressionWithUnknownSerializer = null;
33-
private readonly KnownSerializerMap _knownSerializers;
31+
private Expression _expressionWithMissingSerializer = null;
32+
private readonly SerializerMap _nodeSerializers;
3433

35-
public UnknownSerializerFinder(KnownSerializerMap knownSerializers)
34+
public MissingSerializerFinder(SerializerMap nodeSerializers)
3635
{
37-
_knownSerializers = knownSerializers;
36+
_nodeSerializers = nodeSerializers;
3837
}
3938

40-
public Expression ExpressionWithUnknownSerializer => _expressionWithUnknownSerializer;
39+
public Expression ExpressionWithMissingSerializer => _expressionWithMissingSerializer;
4140

4241
public override Expression Visit(Expression node)
4342
{
44-
if (_knownSerializers.IsKnown(node, out var knownSerializer))
43+
if (_nodeSerializers.IsKnown(node, out var nodeSerializer))
4544
{
46-
if (knownSerializer is IIgnoreSubtreeSerializer or IUnknowableSerializer)
45+
if (nodeSerializer is IIgnoreSubtreeSerializer or IUnknowableSerializer)
4746
{
4847
return node; // don't visit subtree
4948
}
5049
}
5150

5251
base.Visit(node);
5352

54-
if (_expressionWithUnknownSerializer == null &&
53+
if (_expressionWithMissingSerializer == null &&
5554
node != null &&
56-
_knownSerializers.IsNotKnown(node))
55+
_nodeSerializers.IsNotKnown(node))
5756
{
58-
_expressionWithUnknownSerializer = node;
57+
_expressionWithMissingSerializer = node;
5958
}
6059

6160
return node;
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@
1515

1616
using System.Linq.Expressions;
1717

18-
namespace MongoDB.Driver.Linq.Linq3Implementation.KnownSerializerFinders;
18+
namespace MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders;
1919

20-
internal static class KnownSerializerFinder
20+
internal static class SerializerFinder
2121
{
22-
public static void FindKnownSerializers(
22+
public static void FindSerializers(
2323
Expression expression,
2424
ExpressionTranslationOptions translationOptions,
25-
KnownSerializerMap knownSerializers)
25+
SerializerMap nodeSerializers)
2626
{
27-
var visitor = new KnownSerializerFinderVisitor(translationOptions, knownSerializers);
27+
var visitor = new SerializerFinderVisitor(translationOptions, nodeSerializers);
2828

2929
do
3030
{
@@ -35,10 +35,10 @@ public static void FindKnownSerializers(
3535
while (visitor.IsMakingProgress);
3636

3737
//#if DEBUG
38-
var expressionWithUnknownSerializer = UnknownSerializerFinder.FindExpressionWithUnknownSerializer(expression, knownSerializers);
39-
if (expressionWithUnknownSerializer != null)
38+
var expressionWithMissingSerializer = MissingSerializerFinder.FindExpressionWithMissingSerializer(expression, nodeSerializers);
39+
if (expressionWithMissingSerializer != null)
4040
{
41-
throw new ExpressionNotSupportedException(expressionWithUnknownSerializer, because: "we were unable to determine which serializer to use for the result");
41+
throw new ExpressionNotSupportedException(expressionWithMissingSerializer, because: "we were unable to determine which serializer to use for the result");
4242
}
4343
//#endif
4444
}
Lines changed: 46 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -23,44 +23,44 @@
2323
using MongoDB.Driver.Linq.Linq3Implementation.Serializers;
2424
using IOrderedEnumerableSerializer=MongoDB.Driver.Linq.Linq3Implementation.Serializers.IOrderedEnumerableSerializer;
2525

26-
namespace MongoDB.Driver.Linq.Linq3Implementation.KnownSerializerFinders;
26+
namespace MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders;
2727

28-
internal partial class KnownSerializerFinderVisitor
28+
internal partial class SerializerFinderVisitor
2929
{
30-
private void AddKnownSerializer(Expression node, IBsonSerializer serializer) => _knownSerializers.AddSerializer(node, serializer);
30+
private void AddNodeSerializer(Expression node, IBsonSerializer serializer) => _nodeSerializers.AddSerializer(node, serializer);
3131

32-
private bool AreAllKnown(IEnumerable<Expression> nodes, out IReadOnlyList<IBsonSerializer> knownSerializers)
32+
private bool AreAllKnown(IEnumerable<Expression> nodes, out IReadOnlyList<IBsonSerializer> nodeSerializers)
3333
{
34-
var knownSerializersList = new List<IBsonSerializer>();
34+
var nodeSerializersList = new List<IBsonSerializer>();
3535
foreach (var node in nodes)
3636
{
3737
if (IsKnown(node, out var nodeSerializer))
3838
{
39-
knownSerializersList.Add(nodeSerializer);
39+
nodeSerializersList.Add(nodeSerializer);
4040
}
4141
else
4242
{
43-
knownSerializers = null;
43+
nodeSerializers = null;
4444
return false;
4545
}
4646
}
4747

48-
knownSerializers = knownSerializersList;
48+
nodeSerializers = nodeSerializersList;
4949
return true;
5050
}
5151

52-
private bool IsAnyKnown(IEnumerable<Expression> nodes, out IBsonSerializer knownSerializer)
52+
private bool IsAnyKnown(IEnumerable<Expression> nodes, out IBsonSerializer nodeSerializer)
5353
{
5454
foreach (var node in nodes)
5555
{
56-
if (IsKnown(node, out var nodeSerializer))
56+
if (IsKnown(node, out var outSerializer))
5757
{
58-
knownSerializer = nodeSerializer;
58+
nodeSerializer = outSerializer;
5959
return true;
6060
}
6161
}
6262

63-
knownSerializer = null;
63+
nodeSerializer = null;
6464
return false;
6565
}
6666

@@ -69,24 +69,24 @@ private bool IsAnyNotKnown(IEnumerable<Expression> nodes)
6969
return nodes.Any(IsNotKnown);
7070
}
7171

72-
private bool CanDeduceSerializer(Expression node1, Expression node2, out Expression unknownNode, out IBsonSerializer knownSerializer)
72+
private bool CanDeduceSerializer(Expression node1, Expression node2, out Expression unknownNode, out IBsonSerializer otherNodeSerializer)
7373
{
7474
if (IsNotKnown(node1) && IsKnown(node2, out var node2Serializer))
7575
{
7676
unknownNode = node1;
77-
knownSerializer = node2Serializer;
77+
otherNodeSerializer = node2Serializer;
7878
return true;
7979
}
8080

8181
if (IsNotKnown(node2) && IsKnown(node1, out var node1Serializer))
8282
{
8383
unknownNode = node2;
84-
knownSerializer = node1Serializer;
84+
otherNodeSerializer = node1Serializer;
8585
return true;
8686
}
8787

8888
unknownNode = null;
89-
knownSerializer = null;
89+
otherNodeSerializer = null;
9090
return false;
9191
}
9292

@@ -125,47 +125,53 @@ IBsonSerializer CreateCollectionSerializerFromItemSerializer(Type collectionType
125125

126126
private void DeduceBaseTypeAndDerivedTypeSerializers(Expression baseTypeExpression, Expression derivedTypeExpression)
127127
{
128-
if (IsNotKnown(baseTypeExpression) && IsKnown(derivedTypeExpression, out var knownDerivedTypeSerializer))
128+
IBsonSerializer baseTypeSerializer;
129+
IBsonSerializer derivedTypeSerializer;
130+
131+
if (IsNotKnown(baseTypeExpression) && IsKnown(derivedTypeExpression, out derivedTypeSerializer))
129132
{
130-
var baseTypeSerializer = knownDerivedTypeSerializer.GetBaseTypeSerializer(baseTypeExpression.Type);
131-
AddKnownSerializer(baseTypeExpression, baseTypeSerializer);
133+
baseTypeSerializer = derivedTypeSerializer.GetBaseTypeSerializer(baseTypeExpression.Type);
134+
AddNodeSerializer(baseTypeExpression, baseTypeSerializer);
132135
}
133136

134-
if (IsNotKnown(derivedTypeExpression) && IsKnown(baseTypeExpression, out var knownBaseTypeSerializer))
137+
if (IsNotKnown(derivedTypeExpression) && IsKnown(baseTypeExpression, out baseTypeSerializer))
135138
{
136-
var derivedTypeSerializer = knownBaseTypeSerializer.GetDerivedTypeSerializer(baseTypeExpression.Type);
137-
AddKnownSerializer(derivedTypeExpression, derivedTypeSerializer);
139+
derivedTypeSerializer = baseTypeSerializer.GetDerivedTypeSerializer(baseTypeExpression.Type);
140+
AddNodeSerializer(derivedTypeExpression, derivedTypeSerializer);
138141
}
139142
}
140143

141144
private void DeduceBooleanSerializer(Expression node)
142145
{
143146
if (IsNotKnown(node))
144147
{
145-
AddKnownSerializer(node, BooleanSerializer.Instance);
148+
AddNodeSerializer(node, BooleanSerializer.Instance);
146149
}
147150
}
148151

149152
private void DeduceCharSerializer(Expression node)
150153
{
151154
if (IsNotKnown(node))
152155
{
153-
AddKnownSerializer(node, CharSerializer.Instance);
156+
AddNodeSerializer(node, CharSerializer.Instance);
154157
}
155158
}
156159

157160
private void DeduceCollectionAndCollectionSerializers(Expression collectionExpression1, Expression collectionExpression2)
158161
{
159-
if (IsNotKnown(collectionExpression1) && IsKnown(collectionExpression2, out var knownCollectionSerializer2))
162+
IBsonSerializer collectionSerializer1;
163+
IBsonSerializer collectionSerializer2;
164+
165+
if (IsNotKnown(collectionExpression1) && IsKnown(collectionExpression2, out collectionSerializer2))
160166
{
161-
var collectionSerializer1 = CreateCollectionSerializerFromCollectionSerializer(collectionExpression1.Type, knownCollectionSerializer2);
162-
AddKnownSerializer(collectionExpression1, collectionSerializer1);
167+
collectionSerializer1 = CreateCollectionSerializerFromCollectionSerializer(collectionExpression1.Type, collectionSerializer2);
168+
AddNodeSerializer(collectionExpression1, collectionSerializer1);
163169
}
164170

165-
if (IsNotKnown(collectionExpression2) && IsKnown(collectionExpression1, out var knownCollectionSerializer1))
171+
if (IsNotKnown(collectionExpression2) && IsKnown(collectionExpression1, out collectionSerializer1))
166172
{
167-
var collectionSerializer2 = CreateCollectionSerializerFromCollectionSerializer(collectionExpression2.Type, knownCollectionSerializer1);
168-
AddKnownSerializer(collectionExpression2, collectionSerializer2);
173+
collectionSerializer2 = CreateCollectionSerializerFromCollectionSerializer(collectionExpression2.Type, collectionSerializer1);
174+
AddNodeSerializer(collectionExpression2, collectionSerializer2);
169175
}
170176
}
171177

@@ -178,15 +184,15 @@ private void DeduceItemAndCollectionSerializers(Expression itemExpression, Expre
178184
{
179185
if (IsNotKnown(itemExpression) && IsItemSerializerKnown(collectionExpression, out var itemSerializer))
180186
{
181-
AddKnownSerializer(itemExpression, itemSerializer);
187+
AddNodeSerializer(itemExpression, itemSerializer);
182188
}
183189

184190
if (IsNotKnown(collectionExpression) && IsKnown(itemExpression, out itemSerializer))
185191
{
186192
var collectionSerializer = CreateCollectionSerializerFromItemSerializer(collectionExpression.Type, itemSerializer);
187193
if (collectionSerializer != null)
188194
{
189-
AddKnownSerializer(collectionExpression, collectionSerializer);
195+
AddNodeSerializer(collectionExpression, collectionSerializer);
190196
}
191197
}
192198
}
@@ -195,28 +201,28 @@ private void DeduceSerializer(Expression node, IBsonSerializer serializer)
195201
{
196202
if (IsNotKnown(node) && serializer != null)
197203
{
198-
AddKnownSerializer(node, serializer);
204+
AddNodeSerializer(node, serializer);
199205
}
200206
}
201207

202208
private void DeduceSerializers(Expression expression1, Expression expression2)
203209
{
204210
if (IsNotKnown(expression1) && IsKnown(expression2, out var expression2Serializer) && expression2Serializer.ValueType == expression1.Type)
205211
{
206-
AddKnownSerializer(expression1, expression2Serializer);
212+
AddNodeSerializer(expression1, expression2Serializer);
207213
}
208214

209215
if (IsNotKnown(expression2) && IsKnown(expression1, out var expression1Serializer)&& expression1Serializer.ValueType == expression2.Type)
210216
{
211-
AddKnownSerializer(expression2, expression1Serializer);
217+
AddNodeSerializer(expression2, expression1Serializer);
212218
}
213219
}
214220

215221
private void DeduceStringSerializer(Expression node)
216222
{
217223
if (IsNotKnown(node))
218224
{
219-
AddKnownSerializer(node, StringSerializer.Instance);
225+
AddNodeSerializer(node, StringSerializer.Instance);
220226
}
221227
}
222228

@@ -225,7 +231,7 @@ private void DeduceUnknowableSerializer(Expression node)
225231
if (IsNotKnown(node))
226232
{
227233
var unknowableSerializer = UnknowableSerializer.Create(node.Type);
228-
AddKnownSerializer(node, unknowableSerializer);
234+
AddNodeSerializer(node, unknowableSerializer);
229235
}
230236
}
231237

@@ -243,9 +249,9 @@ nodeSerializer is IBsonArraySerializer arraySerializer &&
243249
return false;
244250
}
245251

246-
private bool IsKnown(Expression node) => _knownSerializers.IsKnown(node);
252+
private bool IsKnown(Expression node) => _nodeSerializers.IsKnown(node);
247253

248-
private bool IsKnown(Expression node, out IBsonSerializer knownSerializer) => _knownSerializers.IsKnown(node, out knownSerializer);
254+
private bool IsKnown(Expression node, out IBsonSerializer nodeSerializer) => _nodeSerializers.IsKnown(node, out nodeSerializer);
249255

250-
private bool IsNotKnown(Expression node) => _knownSerializers.IsNotKnown(node);
256+
private bool IsNotKnown(Expression node) => _nodeSerializers.IsNotKnown(node);
251257
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
using MongoDB.Driver.Linq.Linq3Implementation.Serializers;
2424
using MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators;
2525

26-
namespace MongoDB.Driver.Linq.Linq3Implementation.KnownSerializerFinders;
26+
namespace MongoDB.Driver.Linq.Linq3Implementation.SerializerFinders;
2727

28-
internal partial class KnownSerializerFinderVisitor
28+
internal partial class SerializerFinderVisitor
2929
{
3030
public IBsonSerializer CreateNewExpressionSerializer(
3131
Expression expression,

0 commit comments

Comments
 (0)