@@ -12,14 +12,13 @@ public class EncapsulateFieldModel : IRefactoringModel
12
12
{
13
13
private readonly Func < EncapsulateFieldModel , string > _previewDelegate ;
14
14
private QualifiedModuleName _targetQMN ;
15
- //private IValidateEncapsulateFieldNames _validator;
16
15
private IDeclarationFinderProvider _declarationFinderProvider ;
17
16
private IEncapsulateFieldValidationsProvider _validatorProvider ;
18
17
private IObjectStateUDT _newObjectStateUDT ;
19
18
20
19
private IDictionary < Declaration , ( Declaration , IEnumerable < Declaration > ) > _udtFieldToUdtDeclarationMap = new Dictionary < Declaration , ( Declaration , IEnumerable < Declaration > ) > ( ) ;
21
20
22
- public EncapsulateFieldModel ( Declaration target , IEnumerable < IEncapsulateFieldCandidate > candidates , IObjectStateUDT stateUDTField , Func < EncapsulateFieldModel , string > previewDelegate , IDeclarationFinderProvider declarationFinderProvider , IEncapsulateFieldValidationsProvider validatorProvider ) // IEncapsulateFieldValidator validator)
21
+ public EncapsulateFieldModel ( Declaration target , IEnumerable < IEncapsulatableField > candidates , IObjectStateUDT stateUDTField , Func < EncapsulateFieldModel , string > previewDelegate , IDeclarationFinderProvider declarationFinderProvider , IEncapsulateFieldValidationsProvider validatorProvider ) // IEncapsulateFieldValidator validator)
23
22
{
24
23
_previewDelegate = previewDelegate ;
25
24
_targetQMN = target . QualifiedModuleName ;
@@ -36,22 +35,49 @@ public EncapsulateFieldModel(Declaration target, IEnumerable<IEncapsulateFieldCa
36
35
private EncapsulateFieldStrategy _encapsulationFieldStategy ;
37
36
public EncapsulateFieldStrategy EncapsulateFieldStrategy
38
37
{
38
+ get => _encapsulationFieldStategy ;
39
39
set
40
40
{
41
41
_encapsulationFieldStategy = value ;
42
- AssignCandidateValidations ( value ) ;
42
+ if ( _encapsulationFieldStategy == EncapsulateFieldStrategy . UseBackingFields )
43
+ {
44
+ foreach ( var candidate in EncapsulationCandidates )
45
+ {
46
+ candidate . ConflictFinder = _validatorProvider . ConflictDetector ( _encapsulationFieldStategy , _declarationFinderProvider ) ; // ConflictDetector;
47
+ switch ( candidate )
48
+ {
49
+ case IUserDefinedTypeCandidate udt :
50
+ candidate . NameValidator = _validatorProvider . NameOnlyValidator ( NameValidators . UserDefinedType ) ;
51
+ break ;
52
+ case IUserDefinedTypeMemberCandidate udtm :
53
+ candidate . NameValidator = candidate . Declaration . IsArray
54
+ ? _validatorProvider . NameOnlyValidator ( NameValidators . UserDefinedTypeMemberArray )
55
+ : _validatorProvider . NameOnlyValidator ( NameValidators . UserDefinedTypeMember ) ;
56
+ break ;
57
+ default :
58
+ candidate . NameValidator = _validatorProvider . NameOnlyValidator ( NameValidators . Default ) ;
59
+ break ;
60
+ }
61
+ }
62
+ }
63
+ else
64
+ {
65
+ foreach ( var candidate in EncapsulationCandidates )
66
+ {
67
+ candidate . ConflictFinder = _validatorProvider . ConflictDetector ( _encapsulationFieldStategy , _declarationFinderProvider ) ; // ConflictDetector;
68
+ candidate . NameValidator = candidate . Declaration . IsArray
69
+ ? _validatorProvider . NameOnlyValidator ( NameValidators . UserDefinedTypeMemberArray )
70
+ : _validatorProvider . NameOnlyValidator ( NameValidators . UserDefinedTypeMember ) ;
71
+ }
72
+ }
43
73
}
44
- get => _encapsulationFieldStategy ;
45
74
}
46
75
47
- public IEncapsulateFieldValidationsProvider ValidatorProvider => _validatorProvider ;
76
+ public IEncapsulateFieldValidationsProvider ValidationsProvider => _validatorProvider ;
48
77
49
- public IEncapsulateFieldConflictFinder ConflictDetector
50
- => _validatorProvider . ConflictDetector ( EncapsulateFieldStrategy , _declarationFinderProvider ) ;
78
+ public List < IEncapsulatableField > EncapsulationCandidates { set ; get ; } = new List < IEncapsulatableField > ( ) ;
51
79
52
- public List < IEncapsulateFieldCandidate > EncapsulationCandidates { set ; get ; } = new List < IEncapsulateFieldCandidate > ( ) ;
53
-
54
- public IEnumerable < IEncapsulateFieldCandidate > SelectedFieldCandidates
80
+ public IEnumerable < IEncapsulatableField > SelectedFieldCandidates
55
81
=> EncapsulationCandidates . Where ( v => v . EncapsulateFlag ) ;
56
82
57
83
public IEnumerable < IUserDefinedTypeCandidate > UDTFieldCandidates
@@ -64,27 +90,12 @@ public IEnumerable<IUserDefinedTypeCandidate> SelectedUDTFieldCandidates
64
90
. Where ( v => v is IUserDefinedTypeCandidate )
65
91
. Cast < IUserDefinedTypeCandidate > ( ) ;
66
92
67
- public IEncapsulateFieldCandidate this [ string encapsulatedFieldTargetID ]
93
+ public IEncapsulatableField this [ string encapsulatedFieldTargetID ]
68
94
=> EncapsulationCandidates . Where ( c => c . TargetID . Equals ( encapsulatedFieldTargetID ) ) . Single ( ) ;
69
95
70
- public IEncapsulateFieldCandidate this [ Declaration fieldDeclaration ]
96
+ public IEncapsulatableField this [ Declaration fieldDeclaration ]
71
97
=> EncapsulationCandidates . Where ( c => c . Declaration == fieldDeclaration ) . Single ( ) ;
72
98
73
- ////TODO: Get rid of this property
74
- //private bool _convertFieldsToUDTMembers;
75
- //public bool ConvertFieldsToUDTMembers
76
- //{
77
- // set
78
- // {
79
- // _convertFieldsToUDTMembers = value;
80
-
81
- // EncapsulateFieldStrategy = value
82
- // ? EncapsulateFieldStrategy.ConvertFieldsToUDTMembers
83
- // : EncapsulateFieldStrategy.UseBackingFields;
84
- // }
85
- // get => _convertFieldsToUDTMembers;
86
- //}
87
-
88
99
private IObjectStateUDT _activeObjectStateUDT ;
89
100
public IObjectStateUDT StateUDTField
90
101
{
@@ -102,39 +113,6 @@ public IObjectStateUDT StateUDTField
102
113
get => _activeObjectStateUDT ?? _newObjectStateUDT ;
103
114
}
104
115
105
- public void AssignCandidateValidations ( EncapsulateFieldStrategy strategy )
106
- {
107
- foreach ( var candidate in EncapsulationCandidates )
108
- {
109
- candidate . ConvertFieldToUDTMember = strategy == EncapsulateFieldStrategy . ConvertFieldsToUDTMembers ;
110
-
111
- candidate . ConflictFinder = ConflictDetector ;
112
- if ( strategy == EncapsulateFieldStrategy . UseBackingFields )
113
- {
114
- if ( candidate is IUserDefinedTypeCandidate )
115
- {
116
- candidate . NameValidator = _validatorProvider . NameOnlyValidator ( Validators . UserDefinedType ) ;
117
- }
118
- else if ( candidate is IUserDefinedTypeMemberCandidate )
119
- {
120
- candidate . NameValidator = candidate . Declaration . IsArray
121
- ? _validatorProvider . NameOnlyValidator ( Validators . UserDefinedTypeMemberArray )
122
- : _validatorProvider . NameOnlyValidator ( Validators . UserDefinedTypeMember ) ;
123
- }
124
- else
125
- {
126
- candidate . NameValidator = _validatorProvider . NameOnlyValidator ( Validators . Default ) ;
127
- }
128
- }
129
- else
130
- {
131
- candidate . NameValidator = candidate . Declaration . IsArray
132
- ? _validatorProvider . NameOnlyValidator ( Validators . UserDefinedTypeMemberArray )
133
- : _validatorProvider . NameOnlyValidator ( Validators . UserDefinedTypeMember ) ;
134
- }
135
- }
136
- }
137
-
138
116
public string PreviewRefactoring ( ) => _previewDelegate ( this ) ;
139
117
140
118
private HashSet < IObjectStateUDT > _objStateCandidates ;
0 commit comments