File path: /apache-ant-1.7.0/src/org/apache/tools/ant/taskdefs/optional/depend/Depend.java | File path: /apache-ant-1.7.0/src/org/apache/tools/ant/taskdefs/optional/depend/Depend.java | |||
Method name: void dumpDependencies()
|
Method name: void dumpDependencies()
|
|||
Number of AST nodes: 9 | Number of AST nodes: 10 | |||
1 | log("Classpath file dependencies (Forward):", Project.MSG_DEBUG);↵ | |||
2 | Enumeration classpathEnum = classpathDependencies.keys();↵ | |||
1 | while (classEnum.hasMoreElements()) {↵ | 3 | while (classpathEnum.hasMoreElements()) {↵ | |
2 | String className = (String) classEnum.nextElement();↵ | 4 | String className = (String) classpathEnum.nextElement();↵ | |
3 | log(" Class " + className + " affects:", Project.MSG_DEBUG);↵ | 5 | log(" Class " + className + " depends on:", Project.MSG_DEBUG);↵ | |
4 | Hashtable affectedClasses↵ | 6 | Hashtable ↵ | |
7 | dependencies↵ | |||
5 | = (Hashtable) affectedClassMap.get(className);↵ | 8 | = (Hashtable) classpathDependencies.get(className);↵ | |
6 | Enumeration affectedClassEnum = affectedClasses.keys();↵ | 9 | Enumeration classpathFileEnum = dependencies.elements();↵ | |
7 | while (affectedClassEnum.hasMoreElements()) {↵ | 10 | while (classpathFileEnum.hasMoreElements()) {↵ | |
8 | String affectedClass = (String) affectedClassEnum.nextElement();↵ | 11 | ↵ | |
9 | ClassFileInfo info↵ | |||
10 | = (ClassFileInfo) affectedClasses.get(affectedClass);↵ | |||
11 | log(" " + affectedClass + " in "↵ | |||
12 | + info.absolute↵ | 12 | File classpathFile = (File) classpathFileEnum.nextElement();↵ | |
13 | File.getPath(), Project.MSG_DEBUG);↵ | 13 | log(" " + classpathFile.getPath(), Project.MSG_DEBUG);↵ | |
14 | }↵ | 14 | ↵ | |
15 | }↵ | |||
15 | } | 16 | } | |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.1 |
Clones location | Clones are in the same method |
Number of node comparisons | 39 |
Number of mapped statements | 7 |
Number of unmapped statements in the first code fragment | 2 |
Number of unmapped statements in the second code fragment | 3 |
Time elapsed for statement mapping (ms) | 2.8 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 13 | log("Classpath file dependencies (Forward):", Project.MSG_DEBUG); | ||||||||||||||||||||
| 14 | Enumeration classpathEnum = classpathDependencies.keys(); | ||||||||||||||||||||
3 | while (classEnum.hasMoreElements()) |
| 15 | while (classpathEnum.hasMoreElements()) | ||||||||||||||||||
4 | String className = (String)classEnum.nextElement(); |
| 16 | String className = (String)classpathEnum.nextElement(); | ||||||||||||||||||
5 | log(" Class " + className + " affects:", Project.MSG_DEBUG); |
| 17 | log(" Class " + className + " depends on:", Project.MSG_DEBUG); | ||||||||||||||||||
6 | Hashtable affectedClasses = (Hashtable)affectedClassMap.get(className); |
| 18 | Hashtable dependencies = (Hashtable)classpathDependencies.get(className); | ||||||||||||||||||
7 | Enumeration affectedClassEnum = affectedClasses.keys(); |
| 19 | Enumeration classpathFileEnum = dependencies.elements(); | ||||||||||||||||||
8 | while (affectedClassEnum.hasMoreElements()) |
| 20 | while (classpathFileEnum.hasMoreElements()) | ||||||||||||||||||
9 | String affectedClass = (String)affectedClassEnum.nextElement(); |
| | |||||||||||||||||||
10 | ClassFileInfo info = (ClassFileInfo)affectedClasses.get(affectedClass); |
| | |||||||||||||||||||
|
| 21 | File classpathFile = (File)classpathFileEnum.nextElement(); | |||||||||||||||||||
11 | log(" " + affectedClass + " in " + info.absoluteFile.getPath(), Project.MSG_DEBUG); |
| 22 | log(" " + classpathFile.getPath(), Project.MSG_DEBUG); |
Row | Violation |
---|---|
1 | Expression affectedClasses.keys() cannot be parameterized, because it has dependencies to/from statements that will be extracted |
2 | Expression dependencies.elements() cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Unmatched statement String affectedClass=(String)affectedClassEnum.nextElement(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
4 | Unmatched statement ClassFileInfo info=(ClassFileInfo)affectedClasses.get(affectedClass); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
5 | Unmatched statement File classpathFile=(File)classpathFileEnum.nextElement(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
6 | Clone fragment #1 returns variables affectedClassEnum, affectedClasses , while Clone fragment #2 returns variables classpathFileEnum |