File path: /columba-1.4-src/core/src/main/java/org/columba/core/gui/search/SearchPanel.java | File path: /columba-1.4-src/core/src/main/java/org/columba/core/search/SearchManager.java | |||
Method name: void searchComplex(List
|
Method name: void execute(IWorkerStatusController)
|
|||
Number of AST nodes: 12 | Number of AST nodes: 12 | |||
1 | Map<String, Vector<ISearchRequest>> map = new Hashtable<String, Vector<ISearchRequest>>();↵ | 1 | Map<String, Vector<ISearchRequest>> map = new Hashtable<String, Vector<ISearchRequest>>();↵ | |
2 | Iterator<ISearchRequest> it = list.iterator();↵ | 2 | Iterator<ISearchRequest> it = ref.getRequest().iterator();↵ | |
3 | while (it.hasNext()) {↵ | 3 | while (it.hasNext()) {↵ | |
4 | ISearchRequest r = it.next();↵ | 4 | ISearchRequest r = it.next();↵ | |
5 | String providerName = r.getProvider();↵ | 5 | String providerName = r.getProvider();↵ | |
6 | if (map.containsKey(providerName)) {↵ | 6 | if (map.containsKey(providerName)) {↵ | |
7 | Vector<ISearchRequest> v = map.get(providerName);↵ | 7 | Vector<ISearchRequest> v = map.get(providerName);↵ | |
8 | v.add(r);↵ | 8 | v.add(r);↵ | |
9 | } else {↵ | 9 | } else {↵ | |
10 | Vector<ISearchRequest> v = new Vector<ISearchRequest>();↵ | 10 | Vector<ISearchRequest> v = new Vector<ISearchRequest>();↵ | |
11 | v.add(r);↵ | 11 | v.add(r);↵ | |
12 | map.put(providerName, v);↵ | 12 | map.put(providerName, v);↵ | |
13 | }↵ | 13 | }↵ | |
14 | }↵ | 14 | }↵ | |
15 | // now search through all buckets↵ | 15 | // now search through all buckets↵ | |
16 | Iterator<String> it2 = map.keySet().iterator(); | 16 | Iterator<String> it2 = map.keySet().iterator(); | |
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 in different classes |
Number of node comparisons | 51 |
Number of mapped statements | 12 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 0 |
Time elapsed for statement mapping (ms) | 19.5 |
Clone type | Type 2 |
ID | Statement | ID | Statement | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
7 | Map<String, Vector<ISearchRequest>> map = new Hashtable<String, Vector<ISearchRequest>>(); | 24 | Map<String, Vector<ISearchRequest>> map = new Hashtable<String, Vector<ISearchRequest>>(); | |||||||||||
8 | Iterator<ISearchRequest> it = list.iterator(); |
| 25 | Iterator<ISearchRequest> it = ref.getRequest().iterator(); | ||||||||||
9 | while (it.hasNext()) | 26 | while (it.hasNext()) | |||||||||||
10 | ISearchRequest r = it.next(); | 27 | ISearchRequest r = it.next(); | |||||||||||
11 | String providerName = r.getProvider(); | 28 | String providerName = r.getProvider(); | |||||||||||
12 | if (map.containsKey(providerName)) | 29 | if (map.containsKey(providerName)) | |||||||||||
13 | Vector<ISearchRequest> v = map.get(providerName); | 30 | Vector<ISearchRequest> v = map.get(providerName); | |||||||||||
14 | v.add(r); | 31 | v.add(r); | |||||||||||
else | else | |||||||||||||
15 | Vector<ISearchRequest> v = new Vector<ISearchRequest>(); | 32 | Vector<ISearchRequest> v = new Vector<ISearchRequest>(); | |||||||||||
16 | v.add(r); | 33 | v.add(r); | |||||||||||
17 | map.put(providerName, v); | 34 | map.put(providerName, v); | |||||||||||
18 | Iterator<String> it2 = map.keySet().iterator(); | 35 | Iterator<String> it2 = map.keySet().iterator(); |
Row | Violation |
---|---|
1 | Clone fragment #1 returns variables it2 , while Clone fragment #2 returns variables it2, map |