File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/folder/virtual/VirtualFolder.java | File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/folder/virtual/VirtualFolder.java | |||
Method name: void markMessage(Object[], int)
|
Method name: void innerCopy(IMailbox, Object[])
|
|||
Number of AST nodes: 22 | Number of AST nodes: 22 | |||
1 | List list = new ArrayList();↵ | 1 | List list = new ArrayList();↵ | |
2 | // Check if all uids are still exisiting↵ | 2 | // Check if all uids are still exisiting↵ | |
3 | for (Object uid : uids) {↵ | 3 | for (Object uid : uids) {↵ | |
4 | if (exists(uid)) {↵ | 4 | if (exists(uid)) {↵ | |
5 | list.add(uid);↵ | 5 | list.add(uid);↵ | |
6 | }↵ | 6 | }↵ | |
7 | }↵ | 7 | }↵ | |
8 | if (list.size() == 0)↵ | 8 | if (list.size() == 0)↵ | |
9 | return;↵ | 9 | return;↵ | |
10 | Collections.sort(list, new Comparator() {↵ | 10 | Collections.sort(list, new Comparator() {↵ | |
11 | public int compare(Object o1, Object o2) {↵ | 11 | public int compare(Object o1, Object o2) {↵ | |
12 | VirtualHeader h = (VirtualHeader) headerList.get(o1);↵ | 12 | VirtualHeader h = (VirtualHeader) headerList.get(o1);↵ | |
13 | String oV1 = h.getSrcFolder().getId();↵ | 13 | String oV1 = h.getSrcFolder().getId();↵ | |
14 | h = (VirtualHeader) headerList.get(o2);↵ | 14 | h = (VirtualHeader) headerList.get(o2);↵ | |
15 | String oV2 = h.getSrcFolder().getId();↵ | 15 | String oV2 = h.getSrcFolder().getId();↵ | |
16 | return oV1.compareTo(oV2);↵ | 16 | return oV1.compareTo(oV2);↵ | |
17 | }↵ | 17 | }↵ | |
18 | });↵ | 18 | });↵ | |
19 | List folderUids = new ArrayList(uids.length);↵ | 19 | List folderUids = new ArrayList(uids.length);↵ | |
20 | Iterator it = list.iterator();↵ | 20 | Iterator it = list.iterator();↵ | |
21 | VirtualHeader h = (VirtualHeader) headerList.get(it.next());↵ | 21 | VirtualHeader h = (VirtualHeader) headerList.get(it.next());↵ | |
22 | ;↵ | 22 | ;↵ | |
23 | folderUids.add(h.getSrcUid());↵ | 23 | folderUids.add(h.getSrcUid());↵ | |
24 | IMailbox srcFolder = h.getSrcFolder();↵ | 24 | IMailbox srcFolder = h.getSrcFolder();↵ | |
25 | while (it.hasNext()) {↵ | 25 | while (it.hasNext()) {↵ | |
26 | h = (VirtualHeader) headerList.get(it.next());↵ | 26 | h = (VirtualHeader) headerList.get(it.next());↵ | |
27 | if (h.getSrcFolder() == srcFolder) {↵ | 27 | if (h.getSrcFolder() == srcFolder) {↵ | |
28 | folderUids.add(h.getSrcUid());↵ | 28 | folderUids.add(h.getSrcUid());↵ | |
29 | } else {↵ | 29 | } else {↵ | |
30 | srcFolder.markMessage(folderUids.toArray(), variant);↵ | 30 | srcFolder.innerCopy(destFolder, folderUids.toArray());↵ | |
31 | // change to new folder↵ | 31 | // change to new folder↵ | |
32 | srcFolder = h.getSrcFolder();↵ | 32 | srcFolder = h.getSrcFolder();↵ | |
33 | folderUids.clear();↵ | 33 | folderUids.clear();↵ | |
34 | folderUids.add(h.getSrcUid());↵ | 34 | folderUids.add(h.getSrcUid());↵ | |
35 | }↵ | 35 | }↵ | |
36 | }↵ | 36 | }↵ | |
37 | srcFolder.markMessage(↵ | 37 | // Copy the rest↵ | |
38 | folderUids.toArray(), variant); | 38 | srcFolder.innerCopy(destFolder, folderUids.toArray()); | |
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.7 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 104 |
Number of mapped statements | 20 |
Number of unmapped statements in the first code fragment | 2 |
Number of unmapped statements in the second code fragment | 2 |
Time elapsed for statement mapping (ms) | 30.9 |
Clone type | Type 2 |
ID | Statement | ID | Statement | ||||
---|---|---|---|---|---|---|---|
1 | List list = new ArrayList(); | 1 | List list = new ArrayList(); | ||||
2 | for (Object uid : uids) | 2 | for (Object uid : uids) | ||||
3 | if (exists(uid)) | 3 | if (exists(uid)) | ||||
4 | list.add(uid); | 4 | list.add(uid); | ||||
5 | if (list.size() == 0) | 5 | if (list.size() == 0) | ||||
6 | return; | 6 | return; | ||||
7 | Collections.sort(list, new Comparator() {...}); | 7 | Collections.sort(list, new Comparator() {...}); | ||||
8 | List folderUids = new ArrayList(uids.length); | 8 | List folderUids = new ArrayList(uids.length); | ||||
9 | Iterator it = list.iterator(); | 9 | Iterator it = list.iterator(); | ||||
10 | VirtualHeader h = (VirtualHeader)headerList.get(it.next()); | 10 | VirtualHeader h = (VirtualHeader)headerList.get(it.next()); | ||||
11 | ; | 11 | ; | ||||
12 | folderUids.add(h.getSrcUid()); | 12 | folderUids.add(h.getSrcUid()); | ||||
13 | IMailbox srcFolder = h.getSrcFolder(); | 13 | IMailbox srcFolder = h.getSrcFolder(); | ||||
14 | while (it.hasNext()) | 14 | while (it.hasNext()) | ||||
15 | h = (VirtualHeader)headerList.get(it.next()); | 15 | h = (VirtualHeader)headerList.get(it.next()); | ||||
16 | if (h.getSrcFolder() == srcFolder) | 16 | if (h.getSrcFolder() == srcFolder) | ||||
17 | folderUids.add(h.getSrcUid()); | 17 | folderUids.add(h.getSrcUid()); | ||||
else | else | ||||||
|
| 18 | srcFolder.innerCopy(destFolder, folderUids.toArray()); | ||||
18 | srcFolder.markMessage(folderUids.toArray(), variant); |
| | ||||
19 | srcFolder = h.getSrcFolder(); | 19 | srcFolder = h.getSrcFolder(); | ||||
20 | folderUids.clear(); | 20 | folderUids.clear(); | ||||
21 | folderUids.add(h.getSrcUid()); | 21 | folderUids.add(h.getSrcUid()); | ||||
| 22 | srcFolder.innerCopy(destFolder, folderUids.toArray()); | |||||
22 | srcFolder.markMessage(folderUids.toArray(), variant); | |
Row | Violation |
---|---|
1 | Unmatched statement srcFolder.innerCopy(destFolder,folderUids.toArray()); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Unmatched statement srcFolder.markMessage(folderUids.toArray(),variant); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
3 | Clone fragment #1 returns variables folderUids, srcFolder , while Clone fragment #2 returns variables folderUids, srcFolder |