Skip to content

Commit 240f1e2

Browse files
committed
Refactoring
1 parent 04d12e2 commit 240f1e2

File tree

1 file changed

+41
-24
lines changed

1 file changed

+41
-24
lines changed

src/NHibernate/Loader/DefaultEntityAliases.cs

Lines changed: 41 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -37,29 +37,45 @@ public DefaultEntityAliases(IDictionary<string, string[]> userProvidedAliases, I
3737

3838
private string[] DetermineKeyAliases(ILoadable persister)
3939
{
40-
if (_userProvidedAliases == null)
41-
return GetIdentifierAliases(persister, _suffix);
40+
if (_userProvidedAliases != null)
41+
{
42+
var result = SafeGetUserProvidedAliases(persister.IdentifierPropertyName) ??
43+
GetUserProvidedAliases(EntityPersister.EntityID);
4244

43-
return GetUserProvidedAliases(persister.IdentifierPropertyName)
44-
?? GetUserProvidedAliases(EntityPersister.EntityID)
45-
?? GetIdentifierAliases(persister, _suffix);
45+
if (result != null)
46+
return result;
47+
}
48+
49+
return GetIdentifierAliases(persister, _suffix);
4650
}
4751

4852
private string DetermineDiscriminatorAlias(ILoadable persister)
4953
{
50-
if (_userProvidedAliases == null)
51-
return GetDiscriminatorAlias(persister, _suffix);
54+
if (_userProvidedAliases != null)
55+
{
56+
var columns = GetUserProvidedAliases(AbstractEntityPersister.EntityClass);
57+
if (columns != null)
58+
{
59+
return columns[0];
60+
}
61+
}
5262

53-
return GetUserProvidedAlias(AbstractEntityPersister.EntityClass)
54-
?? GetDiscriminatorAlias(persister, _suffix);
63+
return GetDiscriminatorAlias(persister, _suffix);
5564
}
5665

5766
/// <summary>
5867
/// Returns default aliases for all the properties
5968
/// </summary>
60-
protected string[][] GetPropertiesAliases(ILoadable persister)
69+
private string[][] GetAllPropertyAliases(ILoadable persister)
6170
{
62-
return Enumerable.Range(0, persister.PropertyNames.Length).Select(i => GetPropertyAliases(persister, i)).ToArray();
71+
var propertyNames = persister.PropertyNames;
72+
var suffixedPropertyAliases = new string[propertyNames.Length][];
73+
for (var i = 0; i < propertyNames.Length; i++)
74+
{
75+
suffixedPropertyAliases[i] = GetPropertyAliases(persister, i);
76+
}
77+
78+
return suffixedPropertyAliases;
6379
}
6480

6581
protected virtual string GetDiscriminatorAlias(ILoadable persister, string suffix)
@@ -77,20 +93,18 @@ protected virtual string[] GetPropertyAliases(ILoadable persister, int j)
7793
return persister.GetPropertyAliases(_suffix, j);
7894
}
7995

80-
private string[] GetUserProvidedAliases(string propertyPath)
96+
private string[] SafeGetUserProvidedAliases(string propertyPath)
8197
{
8298
if (propertyPath == null)
8399
return null;
84-
85-
string[] result;
86-
_userProvidedAliases.TryGetValue(propertyPath, out result);
87-
return result;
100+
101+
return GetUserProvidedAliases(propertyPath);
88102
}
89103

90-
private string GetUserProvidedAlias(string propertyPath)
104+
private string[] GetUserProvidedAliases(string propertyPath)
91105
{
92-
return GetUserProvidedAliases(propertyPath)?[0];
93-
106+
_userProvidedAliases.TryGetValue(propertyPath, out var result);
107+
return result;
94108
}
95109

96110
/// <summary>
@@ -99,14 +113,17 @@ private string GetUserProvidedAlias(string propertyPath)
99113
public string[][] GetSuffixedPropertyAliases(ILoadable persister)
100114
{
101115
if (_userProvidedAliases == null)
102-
return GetPropertiesAliases(persister);
116+
return GetAllPropertyAliases(persister);
103117

104-
int size = persister.PropertyNames.Length;
105-
string[][] suffixedPropertyAliases = new string[size][];
106-
for (int j = 0; j < size; j++)
118+
var propertyNames = persister.PropertyNames;
119+
var suffixedPropertyAliases = new string[propertyNames.Length][];
120+
for (var i = 0; i < propertyNames.Length; i++)
107121
{
108-
suffixedPropertyAliases[j] = GetUserProvidedAliases(persister.PropertyNames[j]) ?? GetPropertyAliases(persister, j);
122+
suffixedPropertyAliases[i] =
123+
SafeGetUserProvidedAliases(propertyNames[i]) ??
124+
GetPropertyAliases(persister, i);
109125
}
126+
110127
return suffixedPropertyAliases;
111128
}
112129

0 commit comments

Comments
 (0)