Skip to content

Commit b342e94

Browse files
committed
Code cleanup
1 parent aed78c7 commit b342e94

File tree

1 file changed

+30
-38
lines changed

1 file changed

+30
-38
lines changed

src/NHibernate/Criterion/ConditionalProjection.cs

Lines changed: 30 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -7,60 +7,52 @@
77
namespace NHibernate.Criterion
88
{
99
/// <summary>
10-
/// Defines a "switch" projection which supports multiple "cases" ("when/then's") using <see cref="ConditionalProjectionCase"/>.
11-
/// Can be used in Orderby for example.
10+
/// Defines a "switch" projection which supports multiple "cases" ("when/then's").
1211
/// </summary>
1312
/// <seealso cref="SimpleProjection" />
1413
/// <seealso cref="ConditionalProjectionCase" />
1514
[Serializable]
1615
public class ConditionalProjection : SimpleProjection
1716
{
18-
private readonly ConditionalProjectionCase[] cases;
19-
private readonly IProjection elseProjection;
17+
private readonly ConditionalProjectionCase[] _cases;
18+
private readonly IProjection _elseProjection;
2019

20+
/// <summary>
21+
/// Initializes a new instance of the <see cref="ConditionalProjection"/> class.
22+
/// </summary>
23+
/// <param name="criterion">The <see cref="ICriterion"/></param>
24+
/// <param name="whenTrue">The true <see cref="IProjection"/></param>
25+
/// <param name="whenFalse">The else <see cref="IProjection"/>.</param>
2126
public ConditionalProjection(ICriterion criterion, IProjection whenTrue, IProjection whenFalse)
2227
{
23-
elseProjection = whenFalse;
24-
cases = new[] {new ConditionalProjectionCase(criterion, whenTrue)};
28+
_elseProjection = whenFalse;
29+
_cases = new[] {new ConditionalProjectionCase(criterion, whenTrue)};
2530
}
2631

2732
/// <summary>
2833
/// Initializes a new instance of the <see cref="ConditionalProjection"/> class.
2934
/// </summary>
30-
/// <param name="cases">The <see cref="ConditionalProjectionCase"/>s containg your <see cref="ICriterion"/> and <see cref="IProjection"/> pairs.</param>
35+
/// <param name="cases">The <see cref="ConditionalProjectionCase"/>s containing <see cref="ICriterion"/> and <see cref="IProjection"/> pairs.</param>
3136
/// <param name="elseProjection">The else <see cref="IProjection"/>.</param>
32-
/// <exception cref="ArgumentNullException"><paramref name="cases"/> is null.</exception>
33-
/// <exception cref="ArgumentNullException"><paramref name="elseProjection"/> is null.</exception>
34-
/// <exception cref="ArgumentOutOfRangeException"><paramref name="cases"/> should not be empty.</exception>
3537
public ConditionalProjection(ConditionalProjectionCase[] cases, IProjection elseProjection)
3638
{
37-
if (elseProjection is null)
38-
{
39-
throw new ArgumentNullException(nameof(elseProjection));
40-
}
41-
42-
if (cases is null)
43-
{
39+
if (cases == null)
4440
throw new ArgumentNullException(nameof(cases));
45-
}
46-
4741
if (cases.Length == 0)
48-
{
49-
throw new ArgumentOutOfRangeException(nameof(this.cases), "Array should not be empty.");
50-
}
42+
throw new ArgumentException("Array should not be empty.", nameof(cases));
5143

52-
this.cases = cases;
53-
this.elseProjection = elseProjection;
44+
_cases = cases;
45+
_elseProjection = elseProjection;
5446
}
5547

5648
public override bool IsAggregate
5749
{
5850
get
5951
{
60-
if (elseProjection.IsAggregate)
52+
if (_elseProjection.IsAggregate)
6153
return true;
6254

63-
foreach (var projectionCase in cases)
55+
foreach (var projectionCase in _cases)
6456
{
6557
if (projectionCase.Projection.IsAggregate)
6658
return true;
@@ -86,10 +78,10 @@ public override bool IsGrouped
8678
{
8779
get
8880
{
89-
if (elseProjection.IsGrouped)
81+
if (_elseProjection.IsGrouped)
9082
return true;
9183

92-
foreach (var projectionCase in cases)
84+
foreach (var projectionCase in _cases)
9385
{
9486
if (projectionCase.Projection.IsGrouped)
9587
return true;
@@ -111,11 +103,11 @@ public override bool IsGrouped
111103

112104
public override SqlString ToSqlString(ICriteria criteria, int position, ICriteriaQuery criteriaQuery)
113105
{
114-
var sqlBuilder = new SqlStringBuilder(5 + cases.Length * 4);
106+
var sqlBuilder = new SqlStringBuilder(5 + _cases.Length * 4);
115107

116108
sqlBuilder.Add("(case");
117109

118-
foreach (var projectionCase in cases)
110+
foreach (var projectionCase in _cases)
119111
{
120112
sqlBuilder.Add(" when ");
121113
sqlBuilder.Add(projectionCase.Criterion.ToSqlString(criteria, criteriaQuery));
@@ -124,7 +116,7 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri
124116
}
125117

126118
sqlBuilder.Add(" else ");
127-
sqlBuilder.AddObject(CriterionUtil.GetColumnNameAsSqlStringPart(elseProjection, criteriaQuery, criteria));
119+
sqlBuilder.AddObject(CriterionUtil.GetColumnNameAsSqlStringPart(_elseProjection, criteriaQuery, criteria));
128120

129121
sqlBuilder.Add(" end) as ");
130122
sqlBuilder.Add(GetColumnAlias(position));
@@ -134,11 +126,11 @@ public override SqlString ToSqlString(ICriteria criteria, int position, ICriteri
134126

135127
public override IType[] GetTypes(ICriteria criteria, ICriteriaQuery criteriaQuery)
136128
{
137-
var elseTypes = elseProjection.GetTypes(criteria, criteriaQuery);
129+
var elseTypes = _elseProjection.GetTypes(criteria, criteriaQuery);
138130

139-
for (var i = 0; i < cases.Length; i++)
131+
for (var i = 0; i < _cases.Length; i++)
140132
{
141-
var subsequentTypes = cases[i].Projection.GetTypes(criteria, criteriaQuery);
133+
var subsequentTypes = _cases[i].Projection.GetTypes(criteria, criteriaQuery);
142134
if (!AreTypesEqual(elseTypes, subsequentTypes))
143135
{
144136
string msg = "All projections must return the same types." + Environment.NewLine +
@@ -156,13 +148,13 @@ public override TypedValue[] GetTypedValues(ICriteria criteria, ICriteriaQuery c
156148
{
157149
var typedValues = new List<TypedValue>();
158150

159-
foreach (var projectionCase in cases)
151+
foreach (var projectionCase in _cases)
160152
{
161153
typedValues.AddRange(projectionCase.Criterion.GetTypedValues(criteria, criteriaQuery));
162154
typedValues.AddRange(projectionCase.Projection.GetTypedValues(criteria, criteriaQuery));
163155
}
164156

165-
typedValues.AddRange(elseProjection.GetTypedValues(criteria, criteriaQuery));
157+
typedValues.AddRange(_elseProjection.GetTypedValues(criteria, criteriaQuery));
166158

167159
return typedValues.ToArray();
168160
}
@@ -171,13 +163,13 @@ public override SqlString ToGroupSqlString(ICriteria criteria, ICriteriaQuery cr
171163
{
172164
var sqlBuilder = new SqlStringBuilder();
173165

174-
foreach (var projection in cases)
166+
foreach (var projection in _cases)
175167
{
176168
AddToGroupedSql(sqlBuilder, projection.Criterion.GetProjections(), criteria, criteriaQuery);
177169
AddToGroupedSql(sqlBuilder, projection.Projection, criteria, criteriaQuery);
178170
}
179171

180-
AddToGroupedSql(sqlBuilder, elseProjection, criteria, criteriaQuery);
172+
AddToGroupedSql(sqlBuilder, _elseProjection, criteria, criteriaQuery);
181173

182174
// Remove last comma
183175
if (sqlBuilder.Count >= 2)

0 commit comments

Comments
 (0)