Skip to content

Commit a0e2e31

Browse files
committed
Reorganize - add folders and move files
1 parent 217f2d8 commit a0e2e31

File tree

5 files changed

+63
-73
lines changed

5 files changed

+63
-73
lines changed

Rubberduck.Refactorings/EncapsulateField/ConflictDetection/UseBackingFieldsStrategyConflictFinder.cs renamed to Rubberduck.Refactorings/EncapsulateField/ConflictDetection/EncapsulateFieldUseBackingFieldsConflictFinder.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55

66
namespace Rubberduck.Refactorings.EncapsulateField
77
{
8-
public class UseBackingFieldsStrategyConflictFinder : EncapsulateFieldConflictFinderBase, IEncapsulateFieldConflictFinder
8+
public class EncapsulateFieldUseBackingFieldsConflictFinder : EncapsulateFieldConflictFinderBase, IEncapsulateFieldConflictFinder
99
{
10-
public UseBackingFieldsStrategyConflictFinder(IDeclarationFinderProvider declarationFinderProvider, IEnumerable<IEncapsulateFieldCandidate> candidates, IEnumerable<IUserDefinedTypeMemberCandidate> udtCandidates)
11-
: base(declarationFinderProvider, candidates, udtCandidates) { }
10+
public EncapsulateFieldUseBackingFieldsConflictFinder(IDeclarationFinderProvider declarationFinderProvider, IEnumerable<IEncapsulateFieldCandidate> candidates)
11+
: base(declarationFinderProvider, candidates)
12+
{ }
1213

1314
protected override IEnumerable<Declaration> FindRelevantMembers(IEncapsulateFieldCandidate candidate)
1415
=> _declarationFinderProvider.DeclarationFinder.Members(candidate.QualifiedModuleName)
Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66

77
namespace Rubberduck.Refactorings.EncapsulateField
88
{
9-
public interface IConvertFieldsToUDTMembersStrategyConflictFinder : IEncapsulateFieldConflictFinder
9+
public interface IEncapsulateFieldUseBackingUDTMemberConflictFinder : IEncapsulateFieldConflictFinder
1010
{
1111
IObjectStateUDT AssignNoConflictIdentifiers(IObjectStateUDT stateUDT, IDeclarationFinderProvider declarationFinderProvider);
1212
}
1313

14-
public class ConvertFieldsToUDTMembersStrategyConflictFinder : EncapsulateFieldConflictFinderBase, IConvertFieldsToUDTMembersStrategyConflictFinder
14+
public class EncapsulateFieldUseBackingUDTMemberConflictFinder : EncapsulateFieldConflictFinderBase, IEncapsulateFieldUseBackingUDTMemberConflictFinder
1515
{
1616
private static DeclarationType[] _udtTypeIdentifierNonConflictTypes = new DeclarationType[]
1717
{
@@ -27,17 +27,20 @@ public class ConvertFieldsToUDTMembersStrategyConflictFinder : EncapsulateFieldC
2727
DeclarationType.Parameter
2828
};
2929

30-
private IEnumerable<IObjectStateUDT> _objectStateUDTs;
31-
public ConvertFieldsToUDTMembersStrategyConflictFinder(IDeclarationFinderProvider declarationFinderProvider, IEnumerable<IEncapsulateFieldCandidate> candidates, IEnumerable<IUserDefinedTypeMemberCandidate> udtCandidates, IEnumerable<IObjectStateUDT> objectStateUDTs)
32-
: base(declarationFinderProvider, candidates, udtCandidates)
30+
private List<IObjectStateUDT> _objectStateUDTs;
31+
public EncapsulateFieldUseBackingUDTMemberConflictFinder(IDeclarationFinderProvider declarationFinderProvider, IEnumerable<IEncapsulateFieldCandidate> candidates, IEnumerable<IObjectStateUDT> objectStateUDTs)
32+
: base(declarationFinderProvider, candidates)
3333
{
34-
_objectStateUDTs = objectStateUDTs;
34+
_objectStateUDTs = objectStateUDTs.ToList();
3535
}
3636

3737
public override bool TryValidateEncapsulationAttributes(IEncapsulateFieldCandidate field, out string errorMessage)
3838
{
3939
errorMessage = string.Empty;
40-
if (!field.EncapsulateFlag) { return true; }
40+
if (!field.EncapsulateFlag)
41+
{
42+
return true;
43+
}
4144

4245
if (!base.TryValidateEncapsulationAttributes(field, out errorMessage))
4346
{
@@ -97,7 +100,10 @@ protected override IEncapsulateFieldCandidate AssignNoConflictIdentifier(IEncaps
97100

98101
private bool ConflictsWithExistingUDTMembers(IObjectStateUDT objectStateUDT, string identifier)
99102
{
100-
if (objectStateUDT is null) { return false; }
103+
if (objectStateUDT is null)
104+
{
105+
return false;
106+
}
101107

102108
return objectStateUDT.ExistingMembers.Any(nm => nm.IdentifierName.IsEquivalentVBAIdentifierTo(identifier));
103109
}

Rubberduck.Refactorings/EncapsulateField/FieldCandidates/ConvertToUDTMemberCandidate.cs renamed to Rubberduck.Refactorings/EncapsulateField/FieldCandidates/EncapsulateFieldAsUDTMemberCandidate.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,18 @@
77
namespace Rubberduck.Refactorings.EncapsulateField
88
{
99

10-
public interface IConvertToUDTMember : IEncapsulateFieldCandidate
10+
public interface IEncapsulateFieldAsUDTMemberCandidate : IEncapsulateFieldCandidate
1111
{
1212
string UDTMemberDeclaration { get; }
13-
IEncapsulateFieldCandidate WrappedCandidate { get; }
1413
IObjectStateUDT ObjectStateUDT { set; get; }
1514
}
1615

17-
public class ConvertToUDTMember : IConvertToUDTMember
16+
public class EncapsulateFieldAsUDTMemberCandidate : IEncapsulateFieldAsUDTMemberCandidate
1817
{
1918
private int _hashCode;
2019
private readonly string _uniqueID;
21-
private readonly IEncapsulateFieldCandidate _wrapped;
22-
public ConvertToUDTMember(IEncapsulateFieldCandidate candidate, IObjectStateUDT objStateUDT)
20+
private IEncapsulateFieldCandidate _wrapped;
21+
public EncapsulateFieldAsUDTMemberCandidate(IEncapsulateFieldCandidate candidate, IObjectStateUDT objStateUDT)
2322
{
2423
_wrapped = candidate;
2524
PropertyIdentifier = _wrapped.PropertyIdentifier;
@@ -40,8 +39,6 @@ public virtual string UDTMemberDeclaration
4039
}
4140
}
4241

43-
public IEncapsulateFieldCandidate WrappedCandidate => _wrapped;
44-
4542
public IObjectStateUDT ObjectStateUDT { set; get; }
4643

4744
public string TargetID => _wrapped.TargetID;
@@ -123,7 +120,10 @@ public string IdentifierForReference(IdentifierReference idRef)
123120
public bool TryValidateEncapsulationAttributes(out string errorMessage)
124121
{
125122
errorMessage = string.Empty;
126-
if (!_wrapped.EncapsulateFlag) { return true; }
123+
if (!_wrapped.EncapsulateFlag)
124+
{
125+
return true;
126+
}
127127

128128
if (_wrapped is IArrayCandidate ac)
129129
{
@@ -159,7 +159,7 @@ public IEnumerable<PropertyAttributeSet> PropertyAttributeSets
159159
public override bool Equals(object obj)
160160
{
161161
return obj != null
162-
&& obj is ConvertToUDTMember convertWrapper
162+
&& obj is EncapsulateFieldAsUDTMemberCandidate convertWrapper
163163
&& BuildUniqueID(convertWrapper, convertWrapper.ObjectStateUDT) == _uniqueID;
164164
}
165165

Rubberduck.Refactorings/EncapsulateField/EncapsulateFieldCandidateFactory.cs renamed to Rubberduck.Refactorings/EncapsulateField/FieldCandidates/EncapsulateFieldCandidateFactory.cs

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using Rubberduck.Parsing.VBA;
33
using Rubberduck.Refactorings.Common;
44
using Rubberduck.Refactorings.EncapsulateField;
5-
using System.Collections.Generic;
65
using System.Linq;
76

87
namespace Rubberduck.Refactorings
@@ -11,6 +10,7 @@ public interface IEncapsulateFieldCandidateFactory
1110
{
1211
IEncapsulateFieldCandidate Create(Declaration target);
1312
}
13+
1414
public class EncapsulateFieldCandidateFactory : IEncapsulateFieldCandidateFactory
1515
{
1616
private readonly IDeclarationFinderProvider _declarationFinderProvider;
@@ -28,7 +28,9 @@ public IEncapsulateFieldCandidate Create(Declaration target)
2828
{
2929
var udtField = new UserDefinedTypeCandidate(target, _codeBuilder.BuildPropertyRhsParameterName) as IUserDefinedTypeCandidate;
3030

31-
(Declaration udtDeclaration, IEnumerable<Declaration> udtMembers) = GetUDTAndMembersForField(udtField);
31+
var udtMembers = _declarationFinderProvider.DeclarationFinder
32+
.UserDeclarations(DeclarationType.UserDefinedTypeMember)
33+
.Where(utm => udtField.Declaration.AsTypeDeclaration == utm.ParentDeclaration);
3234

3335
foreach (var udtMemberDeclaration in udtMembers)
3436
{
@@ -38,9 +40,9 @@ public IEncapsulateFieldCandidate Create(Declaration target)
3840
}
3941

4042
var udtVariablesOfSameType = _declarationFinderProvider.DeclarationFinder.UserDeclarations(DeclarationType.Variable)
41-
.Where(v => v.AsTypeDeclaration == udtDeclaration);
43+
.Where(v => v.AsTypeDeclaration == udtField.Declaration.AsTypeDeclaration);
4244

43-
udtField.CanBeObjectStateUDT = udtField.TypeDeclarationIsPrivate
45+
udtField.IsObjectStateUDTCandidate = udtField.TypeDeclarationIsPrivate
4446
&& udtField.Declaration.HasPrivateAccessibility()
4547
&& udtVariablesOfSameType.Count() == 1;
4648

@@ -52,19 +54,7 @@ public IEncapsulateFieldCandidate Create(Declaration target)
5254
return arrayCandidate;
5355
}
5456

55-
var candidate = new EncapsulateFieldCandidate(target, _codeBuilder.BuildPropertyRhsParameterName);
56-
return candidate;
57-
}
58-
59-
private (Declaration TypeDeclaration, IEnumerable<Declaration> Members) GetUDTAndMembersForField(IUserDefinedTypeCandidate udtField)
60-
{
61-
var userDefinedTypeDeclaration = udtField.Declaration.AsTypeDeclaration;
62-
63-
var udtMembers = _declarationFinderProvider.DeclarationFinder
64-
.UserDeclarations(DeclarationType.UserDefinedTypeMember)
65-
.Where(utm => userDefinedTypeDeclaration == utm.ParentDeclaration);
66-
67-
return (userDefinedTypeDeclaration, udtMembers);
57+
return new EncapsulateFieldCandidate(target, _codeBuilder.BuildPropertyRhsParameterName);
6858
}
6959
}
7060
}

Rubberduck.Refactorings/EncapsulateField/ObjectStateUDT.cs renamed to Rubberduck.Refactorings/EncapsulateField/ObjectStateUDT/ObjectStateUDT.cs

Lines changed: 29 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@ namespace Rubberduck.Refactorings.EncapsulateField
1111
{
1212
public interface IObjectStateUDT : IEncapsulateFieldRefactoringElement
1313
{
14+
Declaration Declaration { get; }
1415
string TypeIdentifier { set; get; }
1516
string FieldDeclarationBlock { get; }
1617
string FieldIdentifier { set; get; }
1718
bool IsExistingDeclaration { get; }
1819
Declaration AsTypeDeclaration { get; }
1920
bool IsSelected { set; get; }
20-
IEnumerable<IUserDefinedTypeMemberCandidate> ExistingMembers { get; }
21+
IReadOnlyCollection<IUserDefinedTypeMemberCandidate> ExistingMembers { get; }
2122
}
2223

2324
/// <summary>
@@ -31,82 +32,72 @@ public interface IObjectStateUDT : IEncapsulateFieldRefactoringElement
3132
public class ObjectStateUDT : IObjectStateUDT
3233
{
3334
private static string _defaultNewFieldName = RubberduckUI.EncapsulateField_DefaultObjectStateUDTFieldName;
34-
private List<IConvertToUDTMember> _convertedMembers;
35+
private readonly IUserDefinedTypeCandidate _wrappedUDTField;
36+
private readonly int _hashCode;
3537

36-
private readonly IUserDefinedTypeCandidate _wrappedUDT;
37-
private readonly ICodeBuilder _codeBuilder;
38-
private int _hashCode;
39-
40-
public ObjectStateUDT(IUserDefinedTypeCandidate udt)
41-
: this(udt.Declaration.AsTypeName)
38+
public ObjectStateUDT(IUserDefinedTypeCandidate udtField)
39+
: this(udtField.Declaration.AsTypeName)
4240
{
43-
if (!udt.TypeDeclarationIsPrivate)
41+
if (!udtField.TypeDeclarationIsPrivate)
4442
{
4543
throw new ArgumentException();
4644
}
4745

48-
FieldIdentifier = udt.IdentifierName;
49-
_wrappedUDT = udt;
50-
_hashCode = ($"{_qmn.Name}.{_wrappedUDT.IdentifierName}").GetHashCode();
46+
QualifiedModuleName = udtField.QualifiedModuleName;
47+
FieldIdentifier = udtField.IdentifierName;
48+
_wrappedUDTField = udtField;
49+
_hashCode = ($"{QualifiedModuleName.Name}.{_wrappedUDTField.IdentifierName}").GetHashCode();
5150
}
5251

53-
public ObjectStateUDT(QualifiedModuleName qmn)
54-
:this($"T{qmn.ComponentName.CapitalizeFirstLetter()}")
52+
public ObjectStateUDT(QualifiedModuleName qualifiedModuleName)
53+
:this($"T{qualifiedModuleName.ComponentName.CapitalizeFirstLetter()}")
5554
{
56-
QualifiedModuleName = qmn;
55+
QualifiedModuleName = qualifiedModuleName;
5756
}
5857

5958
private ObjectStateUDT(string typeIdentifier)
6059
{
6160
FieldIdentifier = _defaultNewFieldName;
6261
TypeIdentifier = typeIdentifier;
63-
_convertedMembers = new List<IConvertToUDTMember>();
64-
_codeBuilder = new CodeBuilder();
65-
_convertedMembers = new List<IConvertToUDTMember>();
6662
}
6763

6864
public string FieldDeclarationBlock
6965
=> $"{Accessibility.Private} {IdentifierName} {Tokens.As} {AsTypeName}";
7066

71-
public string IdentifierName => _wrappedUDT?.IdentifierName ?? FieldIdentifier;
67+
public string IdentifierName => _wrappedUDTField?.IdentifierName ?? FieldIdentifier;
68+
69+
public Declaration Declaration => _wrappedUDTField?.Declaration;
7270

73-
public string AsTypeName => _wrappedUDT?.AsTypeName ?? TypeIdentifier;
71+
public string AsTypeName => _wrappedUDTField?.AsTypeName ?? TypeIdentifier;
7472

7573
private bool _isSelected;
7674
public bool IsSelected
7775
{
7876
set
7977
{
8078
_isSelected = value;
81-
if (_wrappedUDT != null)
79+
if (_wrappedUDTField != null)
8280
{
83-
_wrappedUDT.IsSelectedObjectStateUDT = value;
81+
_wrappedUDTField.IsSelectedObjectStateUDT = value;
8482
if (_isSelected && IsExistingDeclaration)
8583
{
86-
_wrappedUDT.EncapsulateFlag = false;
84+
_wrappedUDTField.EncapsulateFlag = false;
8785
}
8886
}
8987
}
9088
get => _isSelected;
9189
}
9290

93-
public IEnumerable<IUserDefinedTypeMemberCandidate> ExistingMembers
94-
=> IsExistingDeclaration
95-
? _wrappedUDT.Members
96-
: Enumerable.Empty<IUserDefinedTypeMemberCandidate>();
91+
public IReadOnlyCollection<IUserDefinedTypeMemberCandidate> ExistingMembers
92+
=> _wrappedUDTField?.Members.ToList() ?? new List<IUserDefinedTypeMemberCandidate>();
9793

98-
private QualifiedModuleName _qmn;
99-
public QualifiedModuleName QualifiedModuleName
100-
{
101-
set => _qmn = value;
102-
get => _wrappedUDT?.QualifiedModuleName ?? _qmn;
103-
}
94+
public QualifiedModuleName QualifiedModuleName { get; }
10495

10596
public string TypeIdentifier { set; get; }
10697

107-
public bool IsExistingDeclaration => _wrappedUDT != null;
98+
public bool IsExistingDeclaration => _wrappedUDTField != null;
10899

109-
public Declaration AsTypeDeclaration => _wrappedUDT?.Declaration.AsTypeDeclaration;
100+
public Declaration AsTypeDeclaration => _wrappedUDTField?.Declaration.AsTypeDeclaration;
110101

111102
public string FieldIdentifier { set; get; }
112103

@@ -116,13 +107,15 @@ public override bool Equals(object obj)
116107
{
117108
return true;
118109
}
110+
119111
if (obj is IEncapsulateFieldRefactoringElement fd && fd.IdentifierName == IdentifierName)
120112
{
121113
return true;
122114
}
115+
123116
return false;
124117
}
125118

126-
public override int GetHashCode() => _hashCode;
119+
public override int GetHashCode() => _hashCode;
127120
}
128121
}

0 commit comments

Comments
 (0)