File path: /apache-ant-1.7.0/src/org/apache/tools/ant/taskdefs/MakeUrl.java | File path: /apache-ant-1.7.0/src/org/apache/tools/ant/taskdefs/MakeUrl.java | |||
Method name: String filesetsToURL()
|
Method name: String pathsToURL()
|
|||
Number of AST nodes: 18 | Number of AST nodes: 17 | |||
1 | if (filesets.isEmpty()) {↵ | 1 | if (paths.isEmpty()) {↵ | |
2 | return "";↵ | 2 | return "";↵ | |
3 | }↵ | 3 | }↵ | |
4 | int count = 0;↵ | 4 | int count = 0;↵ | |
5 | StringBuffer urls = new StringBuffer();↵ | 5 | StringBuffer urls = new StringBuffer();↵ | |
6 | ListIterator list = filesets.listIterator();↵ | 6 | ListIterator list = paths.listIterator();↵ | |
7 | while (list.hasNext()) {↵ | 7 | while (list.hasNext()) {↵ | |
8 | FileSet set = (FileSet) list.next();↵ | 8 | Path path = (Path) list.next();↵ | |
9 | DirectoryScanner scanner = set.getDirectoryScanner(getProject());↵ | |||
10 | String[] files = scanner.getIncludedFiles();↵ | 9 | String[] elements = path.list();↵ | |
11 | for (int i = 0; i < files.length; i++) {↵ | 10 | for (int i = 0; i < elements.length; i++) {↵ | |
12 | File f = new File(scanner.getBasedir(), files[i]);↵ | 11 | File f = new File(elements[i]);↵ | |
13 | validateFile(f);↵ | 12 | validateFile(f);↵ | |
14 | String asUrl = toURL(f);↵ | 13 | String asUrl = toURL(f);↵ | |
15 | urls.append(asUrl);↵ | 14 | urls.append(asUrl);↵ | |
16 | log(asUrl, Project.MSG_DEBUG);↵ | 15 | log(asUrl, Project.MSG_DEBUG);↵ | |
17 | urls.append(separator);↵ | 16 | urls.append(separator);↵ | |
18 | count++;↵ | 17 | count++;↵ | |
19 | }↵ | 18 | }↵ | |
20 | }↵ | 19 | }↵ | |
21 | //at this point there is one trailing space to remove, if the list is not empty.↵ | 20 | //at this point there is one trailing space to remove, if the list is not empty.↵ | |
22 | return stripTrailingSeparator(urls, count); | 21 |
| |
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.3 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 90 |
Number of mapped statements | 16 |
Number of unmapped statements in the first code fragment | 2 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 6.3 |
Clone type | Type 3 |
ID | Statement | ID | Statement | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | if (filesets.isEmpty()) |
| 1 | if (paths.isEmpty()) | |||||||||||||||||||||
2 | return ""; | 2 | return ""; | ||||||||||||||||||||||
3 | int count = 0; | 3 | int count = 0; | ||||||||||||||||||||||
4 | StringBuffer urls = new StringBuffer(); | 4 | StringBuffer urls = new StringBuffer(); | ||||||||||||||||||||||
5 | ListIterator list = filesets.listIterator(); |
| 5 | ListIterator list = paths.listIterator(); | |||||||||||||||||||||
6 | while (list.hasNext()) | 6 | while (list.hasNext()) | ||||||||||||||||||||||
7 | FileSet set = (FileSet)list.next(); |
| 7 | Path path = (Path)list.next(); | |||||||||||||||||||||
|
| 8 | String[] elements = path.list(); | ||||||||||||||||||||||
8 | DirectoryScanner scanner = set.getDirectoryScanner(getProject()); |
| | ||||||||||||||||||||||
9 | String[] files = scanner.getIncludedFiles(); |
| | ||||||||||||||||||||||
10 | for (int i = 0; i < files.length; i++) |
| 9 | for (int i = 0; i < elements.length; i++) | |||||||||||||||||||||
11 | File f = new File(scanner.getBasedir(), files[i]); |
| 10 | File f = new File(elements[i]); | |||||||||||||||||||||
12 | validateFile(f); | 11 | validateFile(f); | ||||||||||||||||||||||
13 | String asUrl = toURL(f); | 12 | String asUrl = toURL(f); | ||||||||||||||||||||||
14 | urls.append(asUrl); | 13 | urls.append(asUrl); | ||||||||||||||||||||||
15 | log(asUrl, Project.MSG_DEBUG); | 14 | log(asUrl, Project.MSG_DEBUG); | ||||||||||||||||||||||
16 | urls.append(separator); | 15 | urls.append(separator); | ||||||||||||||||||||||
17 | count++; | 16 | count++; | ||||||||||||||||||||||
18 | return stripTrailingSeparator(urls, count); | 17 | return stripTrailingSeparator(urls, count); |
Row | Violation |
---|---|
1 | Expression (FileSet)list.next() cannot be parameterized, because it has dependencies to/from statements that will be extracted |
2 | Expression (Path)list.next() cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Unmatched statement String[] elements=path.list(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
4 | Unmatched statement DirectoryScanner scanner=set.getDirectoryScanner(getProject()); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
5 | Unmatched statement String[] files=scanner.getIncludedFiles(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
6 | Expression new File(scanner.getBasedir(),files[i]) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
7 | Expression new File(elements[i]) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
8 | Clone fragment #1 returns variable set with type org.apache.tools.ant.types.FileSet , while Clone fragment #2 returns variable path with type org.apache.tools.ant.types.Path |