Skip to content

Commit 8ebd450

Browse files
committed
chore: Refactor to solve Implementation smells
1 parent 3c99396 commit 8ebd450

File tree

3 files changed

+47
-30
lines changed

3 files changed

+47
-30
lines changed

src/Designite/SourceModel/SM_Method.java

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,49 @@ public MethodDeclaration getMethodDeclaration() {
103103
return methodDeclaration;
104104
}
105105

106+
private void prepareCalledMethodsList() {
107+
MethodInvVisitor invVisitor = new MethodInvVisitor(methodDeclaration);
108+
methodDeclaration.accept(invVisitor);
109+
List<MethodInvocation> invList = invVisitor.getCalledMethods();
110+
if (invList.size() > 0) {
111+
calledMethods.addAll(invList);
112+
}
113+
}
114+
115+
private void prepareInstanceOfVisitorList() {
116+
InstanceOfVisitor instanceOfVisitor = new InstanceOfVisitor();
117+
methodDeclaration.accept(instanceOfVisitor);
118+
List<Type> instanceOfTypes = instanceOfVisitor.getTypesInInstanceOf();
119+
if (instanceOfTypes.size() > 0) {
120+
typesInInstanceOf.addAll(instanceOfTypes);
121+
}
122+
}
123+
124+
private void prepareParametersList(SingleVariableDeclaration var) {
125+
VariableVisitor parameterVisitor = new VariableVisitor(this);
126+
// methodDeclaration.accept(parameterVisitor);
127+
var.accept(parameterVisitor);
128+
List<SM_Parameter> pList = parameterVisitor.getParameterList();
129+
if (pList.size() > 0) {
130+
parameterList.addAll(pList);
131+
}
132+
}
133+
106134
private void parseParameters() {
107135
for (SM_Parameter param : parameterList) {
108136
param.parse();
109137
}
110138
}
111139

140+
private void prepareLocalVarList() {
141+
LocalVarVisitor localVarVisitor = new LocalVarVisitor(this);
142+
methodDeclaration.accept(localVarVisitor);
143+
List<SM_LocalVar> lList = localVarVisitor.getLocalVarList();
144+
if (lList.size() > 0) {
145+
localVarList.addAll(lList);
146+
}
147+
}
148+
112149
private void parseLocalVar() {
113150
for (SM_LocalVar var : localVarList) {
114151
var.parse();
@@ -145,31 +182,15 @@ public void printDebugLog(PrintWriter writer) {
145182
//TODO: Modularize parser with private functions
146183
@Override
147184
public void parse() {
148-
MethodInvVisitor invVisitor = new MethodInvVisitor(methodDeclaration);
149-
methodDeclaration.accept(invVisitor);
150-
List<MethodInvocation> invList = invVisitor.getCalledMethods();
151-
if (invList.size() > 0) {
152-
calledMethods.addAll(invList);
153-
}
185+
prepareCalledMethodsList();
154186

155187
List<SingleVariableDeclaration> variableList = methodDeclaration.parameters();
156188
for (SingleVariableDeclaration var : variableList) {
157-
VariableVisitor parameterVisitor = new VariableVisitor(this);
158-
// methodDeclaration.accept(parameterVisitor);
159-
var.accept(parameterVisitor);
160-
List<SM_Parameter> pList = parameterVisitor.getParameterList();
161-
if (pList.size() > 0) {
162-
parameterList.addAll(pList);
163-
}
189+
prepareParametersList(var);
164190
parseParameters();
165191
}
166192

167-
LocalVarVisitor localVarVisitor = new LocalVarVisitor(this);
168-
methodDeclaration.accept(localVarVisitor);
169-
List<SM_LocalVar> lList = localVarVisitor.getLocalVarList();
170-
if (lList.size() > 0) {
171-
localVarList.addAll(lList);
172-
}
193+
prepareLocalVarList();
173194
parseLocalVar();
174195

175196
DirectAceessFieldVisitor directAceessFieldVisitor = new DirectAceessFieldVisitor();
@@ -182,14 +203,8 @@ public void parse() {
182203
if (thisAccesses.size() > 0) {
183204
thisAccessesInMethod.addAll(thisAccesses);
184205
}
185-
186-
InstanceOfVisitor instanceOfVisitor = new InstanceOfVisitor();
187-
methodDeclaration.accept(instanceOfVisitor);
188-
List<Type> instanceOfTypes = instanceOfVisitor.getTypesInInstanceOf();
189-
if (instanceOfTypes.size() > 0) {
190-
typesInInstanceOf.addAll(instanceOfTypes);
191-
}
192-
206+
prepareInstanceOfVisitorList();
207+
193208
ThrowVisitor throwVisithor = new ThrowVisitor();
194209
methodDeclaration.accept(throwVisithor);
195210
throwsException = throwVisithor.throwsException();

src/Designite/SourceModel/TypeInfo.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ public class TypeInfo {
1111
private boolean parametrizedType;
1212
private List<SM_Type> nonPrimitiveTypeParameters = new ArrayList<>();
1313

14+
private static final int COMMA_LENGTH = 2;
15+
1416
public SM_Type getTypeObj() {
1517
return typeObj;
1618
}
@@ -56,7 +58,7 @@ public String getStringOfNonPrimitiveParameters() {
5658
}
5759

5860
private String removeLastComma(String str) {
59-
return (str.length() > 2) ? str.substring(0, str.length() - 2) : str;
61+
return (str.length() > COMMA_LENGTH) ? str.substring(0, str.length() - COMMA_LENGTH) : str;
6062
}
6163

6264
public int getNumOfNonPrimitiveParameters() {

src/Designite/smells/implementationSmells/ImplementationSmellDetector.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class ImplementationSmellDetector {
3333
private SourceItemInfo info;
3434
private ThresholdsDTO thresholdsDTO;
3535

36-
private static final String ABSTRACT_FUMCTION_CALL_FROM_CONSTRUCTOR = "Abstract Function Call From Constructor";
36+
private static final String ABST_FUNC_CALL_FRM_CTOR = "Abstract Function Call From Constructor";
3737
private static final String COMPLEX_CONDITIONAL = "Complex Conditional";
3838
private static final String COMPLEX_METHOD = "Complex Method";
3939
private static final String EMPTY_CATCH_CLAUSE = "Empty catch clause";
@@ -72,7 +72,7 @@ public List<ImplementationCodeSmell> detectCodeSmells() {
7272

7373
public List<ImplementationCodeSmell> detectAbstractFunctionCallFromConstructor() {
7474
if (hasAbstractFunctionCallFromConstructor()) {
75-
addToSmells(initializeCodeSmell(ABSTRACT_FUMCTION_CALL_FROM_CONSTRUCTOR));
75+
addToSmells(initializeCodeSmell(ABST_FUNC_CALL_FRM_CTOR));
7676
}
7777
return smells;
7878
}

0 commit comments

Comments
 (0)