Skip to content

Commit c00dd53

Browse files
committed
chore(Refactoring): Removed Rebellious Hierarchy smell by introducing Parsable Interface
1 parent 8ebd450 commit c00dd53

File tree

9 files changed

+41
-32
lines changed

9 files changed

+41
-32
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package Designite.SourceModel;
2+
3+
public interface Parsable {
4+
void parse();
5+
}

src/Designite/SourceModel/SM_EntitiesWithType.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ public String getTypeOverallToString() {
5454
// return "generic";
5555
}
5656

57-
@Override
58-
public void parse() {
59-
60-
}
57+
// @Override
58+
// public void parse() {
59+
//
60+
// }
6161
}

src/Designite/SourceModel/SM_Method.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import Designite.visitors.InstanceOfVisitor;
1818
import Designite.visitors.ThrowVisitor;
1919

20-
public class SM_Method extends SM_SourceItem implements Vertex {
20+
public class SM_Method extends SM_SourceItem implements Vertex, Parsable {
2121

2222
private boolean abstractMethod;
2323
private boolean finalMethod;
@@ -131,11 +131,12 @@ private void prepareParametersList(SingleVariableDeclaration var) {
131131
}
132132
}
133133

134-
private void parseParameters() {
135-
for (SM_Parameter param : parameterList) {
136-
param.parse();
137-
}
138-
}
134+
//SM_Parameter uses an empty parse method. So commenting this.
135+
// private void parseParameters() {
136+
// for (SM_Parameter param : parameterList) {
137+
// param.parse();
138+
// }
139+
// }
139140

140141
private void prepareLocalVarList() {
141142
LocalVarVisitor localVarVisitor = new LocalVarVisitor(this);
@@ -146,11 +147,12 @@ private void prepareLocalVarList() {
146147
}
147148
}
148149

149-
private void parseLocalVar() {
150-
for (SM_LocalVar var : localVarList) {
151-
var.parse();
152-
}
153-
}
150+
//SM_LocalVar inherits SM_EntitiesWithType which inter uses an empty parse method. So, commenting this.
151+
// private void parseLocalVar() {
152+
// for (SM_LocalVar var : localVarList) {
153+
// var.parse();
154+
// }
155+
// }
154156

155157
public String getMethodBody() {
156158
if (this.hasBody())
@@ -187,11 +189,11 @@ public void parse() {
187189
List<SingleVariableDeclaration> variableList = methodDeclaration.parameters();
188190
for (SingleVariableDeclaration var : variableList) {
189191
prepareParametersList(var);
190-
parseParameters();
192+
// parseParameters();
191193
}
192194

193195
prepareLocalVarList();
194-
parseLocalVar();
196+
// parseLocalVar();
195197

196198
DirectAceessFieldVisitor directAceessFieldVisitor = new DirectAceessFieldVisitor();
197199
methodDeclaration.accept(directAceessFieldVisitor);

src/Designite/SourceModel/SM_Package.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import Designite.utils.Constants;
1818
import Designite.utils.models.Edge;
1919

20-
public class SM_Package extends SM_SourceItem {
20+
public class SM_Package extends SM_SourceItem implements Parsable{
2121
private List<CompilationUnit> compilationUnitList;
2222
private List<SM_Type> typeList = new ArrayList<>();
2323
private SM_Project parentProject;

src/Designite/SourceModel/SM_Parameter.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ public String toString() {
5858
+ ", is=" + getTypeBinding().getNodeType();
5959
}
6060

61-
@Override
62-
public void parse() {
63-
64-
}
61+
// @Override
62+
// public void parse() {
63+
//
64+
// }
6565

6666
}

src/Designite/SourceModel/SM_Project.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import Designite.utils.Logger;
2121
import Designite.utils.models.Graph;
2222

23-
public class SM_Project extends SM_SourceItem {
23+
public class SM_Project extends SM_SourceItem implements Parsable {
2424

2525
private InputArgs inputArgs;
2626
private List<String> sourceFileList;

src/Designite/SourceModel/SM_SourceItem.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public abstract class SM_SourceItem {
1919
/**
2020
* This is the first pass of parsing a source code entity.
2121
*/
22-
public abstract void parse();
22+
// public abstract void parse();
2323

2424
/**
2525
* This method establishes relationships among source-code entities. Such

src/Designite/SourceModel/SM_Type.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import Designite.visitors.StaticFieldAccessVisitor;
2626

2727
//TODO check EnumDeclaration, AnnotationTypeDeclaration and nested classes
28-
public class SM_Type extends SM_SourceItem implements Vertex {
28+
public class SM_Type extends SM_SourceItem implements Vertex, Parsable {
2929

3030

3131
private boolean isAbstract = false;
@@ -221,11 +221,12 @@ private void parseMethods() {
221221
}
222222
}
223223

224-
private void parseFields() {
225-
for (SM_Field field : fieldList) {
226-
field.parse();
227-
}
228-
}
224+
//SM_Field inherits SM_EntitiesWithType which inter uses an empty parse method. So, commenting this.
225+
// private void parseFields() {
226+
// for (SM_Field field : fieldList) {
227+
// field.parse();
228+
// }
229+
// }
229230

230231
@Override
231232
public void printDebugLog(PrintWriter writer) {
@@ -263,7 +264,7 @@ public void parse() {
263264
List<SM_Field> fList = fieldVisitor.getFields();
264265
if (fList.size() > 0)
265266
fieldList.addAll(fList);
266-
parseFields();
267+
// parseFields();
267268

268269
StaticFieldAccessVisitor fieldAccessVisitor = new StaticFieldAccessVisitor();
269270
typeDeclaration.accept(fieldAccessVisitor);

tests/DesigniteTests/DesigniteTests/SM_PackageTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ public void SM_Package_positive_case() {
3030
if (pkg.getName().equals("Designite"))
3131
assertEquals(pkg.getTypeList().size(), 2);
3232
if (pkg.getName().equals("Designite.SourceModel"))
33-
assertEquals(20, pkg.getTypeList().size());
33+
//Added additional class in the package.
34+
assertEquals(21, pkg.getTypeList().size());
3435
}
3536
}
3637

0 commit comments

Comments
 (0)