@@ -11,13 +11,14 @@ namespace Rubberduck.Refactorings.EncapsulateField
11
11
{
12
12
public interface IObjectStateUDT : IEncapsulateFieldRefactoringElement
13
13
{
14
+ Declaration Declaration { get ; }
14
15
string TypeIdentifier { set ; get ; }
15
16
string FieldDeclarationBlock { get ; }
16
17
string FieldIdentifier { set ; get ; }
17
18
bool IsExistingDeclaration { get ; }
18
19
Declaration AsTypeDeclaration { get ; }
19
20
bool IsSelected { set ; get ; }
20
- IEnumerable < IUserDefinedTypeMemberCandidate > ExistingMembers { get ; }
21
+ IReadOnlyCollection < IUserDefinedTypeMemberCandidate > ExistingMembers { get ; }
21
22
}
22
23
23
24
/// <summary>
@@ -31,82 +32,72 @@ public interface IObjectStateUDT : IEncapsulateFieldRefactoringElement
31
32
public class ObjectStateUDT : IObjectStateUDT
32
33
{
33
34
private static string _defaultNewFieldName = RubberduckUI . EncapsulateField_DefaultObjectStateUDTFieldName ;
34
- private List < IConvertToUDTMember > _convertedMembers ;
35
+ private readonly IUserDefinedTypeCandidate _wrappedUDTField ;
36
+ private readonly int _hashCode ;
35
37
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 )
42
40
{
43
- if ( ! udt . TypeDeclarationIsPrivate )
41
+ if ( ! udtField . TypeDeclarationIsPrivate )
44
42
{
45
43
throw new ArgumentException ( ) ;
46
44
}
47
45
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 ( ) ;
51
50
}
52
51
53
- public ObjectStateUDT ( QualifiedModuleName qmn )
54
- : this ( $ "T{ qmn . ComponentName . CapitalizeFirstLetter ( ) } ")
52
+ public ObjectStateUDT ( QualifiedModuleName qualifiedModuleName )
53
+ : this ( $ "T{ qualifiedModuleName . ComponentName . CapitalizeFirstLetter ( ) } ")
55
54
{
56
- QualifiedModuleName = qmn ;
55
+ QualifiedModuleName = qualifiedModuleName ;
57
56
}
58
57
59
58
private ObjectStateUDT ( string typeIdentifier )
60
59
{
61
60
FieldIdentifier = _defaultNewFieldName ;
62
61
TypeIdentifier = typeIdentifier ;
63
- _convertedMembers = new List < IConvertToUDTMember > ( ) ;
64
- _codeBuilder = new CodeBuilder ( ) ;
65
- _convertedMembers = new List < IConvertToUDTMember > ( ) ;
66
62
}
67
63
68
64
public string FieldDeclarationBlock
69
65
=> $ "{ Accessibility . Private } { IdentifierName } { Tokens . As } { AsTypeName } ";
70
66
71
- public string IdentifierName => _wrappedUDT ? . IdentifierName ?? FieldIdentifier ;
67
+ public string IdentifierName => _wrappedUDTField ? . IdentifierName ?? FieldIdentifier ;
68
+
69
+ public Declaration Declaration => _wrappedUDTField ? . Declaration ;
72
70
73
- public string AsTypeName => _wrappedUDT ? . AsTypeName ?? TypeIdentifier ;
71
+ public string AsTypeName => _wrappedUDTField ? . AsTypeName ?? TypeIdentifier ;
74
72
75
73
private bool _isSelected ;
76
74
public bool IsSelected
77
75
{
78
76
set
79
77
{
80
78
_isSelected = value ;
81
- if ( _wrappedUDT != null )
79
+ if ( _wrappedUDTField != null )
82
80
{
83
- _wrappedUDT . IsSelectedObjectStateUDT = value ;
81
+ _wrappedUDTField . IsSelectedObjectStateUDT = value ;
84
82
if ( _isSelected && IsExistingDeclaration )
85
83
{
86
- _wrappedUDT . EncapsulateFlag = false ;
84
+ _wrappedUDTField . EncapsulateFlag = false ;
87
85
}
88
86
}
89
87
}
90
88
get => _isSelected ;
91
89
}
92
90
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 > ( ) ;
97
93
98
- private QualifiedModuleName _qmn ;
99
- public QualifiedModuleName QualifiedModuleName
100
- {
101
- set => _qmn = value ;
102
- get => _wrappedUDT ? . QualifiedModuleName ?? _qmn ;
103
- }
94
+ public QualifiedModuleName QualifiedModuleName { get ; }
104
95
105
96
public string TypeIdentifier { set ; get ; }
106
97
107
- public bool IsExistingDeclaration => _wrappedUDT != null ;
98
+ public bool IsExistingDeclaration => _wrappedUDTField != null ;
108
99
109
- public Declaration AsTypeDeclaration => _wrappedUDT ? . Declaration . AsTypeDeclaration ;
100
+ public Declaration AsTypeDeclaration => _wrappedUDTField ? . Declaration . AsTypeDeclaration ;
110
101
111
102
public string FieldIdentifier { set ; get ; }
112
103
@@ -116,13 +107,15 @@ public override bool Equals(object obj)
116
107
{
117
108
return true ;
118
109
}
110
+
119
111
if ( obj is IEncapsulateFieldRefactoringElement fd && fd . IdentifierName == IdentifierName )
120
112
{
121
113
return true ;
122
114
}
115
+
123
116
return false ;
124
117
}
125
118
126
- public override int GetHashCode ( ) => _hashCode ;
119
+ public override int GetHashCode ( ) => _hashCode ;
127
120
}
128
121
}
0 commit comments