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 | 1 |
Number of non-refactorable cases | 0 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 2.4 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 86 |
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) | 89.1 |
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.innerCopy(destFolder,folderUids.toArray()); cannot be moved before or after the extracted code, because it throws exception(s) that should be caught by a try block that will be extracted |
3 | 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 |
4 | Unmatched statement srcFolder.markMessage(folderUids.toArray(),variant); cannot be moved before or after the extracted code, because it throws exception(s) that should be caught by a try block that will be extracted |
5 | 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 |
6 | 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 |