File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/folder/command/CreateFilterOnMessageCommand.java | File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/folder/command/CreateVFolderOnMessageCommand.java | |||
Method name: void execute(IWorkerStatusController)
|
Method name: void execute(IWorkerStatusController)
|
|||
Number of AST nodes: 15 | Number of AST nodes: 15 | |||
1 | IMailFolderCommandReference r = (IMailFolderCommandReference) getReference();↵ | 1 | IMailFolderCommandReference r = (IMailFolderCommandReference) getReference();↵ | |
2 | Object[] uids = r.getUids(); // uid for messages to save↵ | 2 | Object[] uids = r.getUids(); // uid for messages to save↵ | |
3 | if (uids.length == 0) {↵ | 3 | if (uids.length == 0) {↵ | |
4 | LOG.fine("No filt↵ | 4 | LOG.fine(↵ | |
5 | er created since no message was selected");↵ | 5 | "No virtual folder created since no message was selected");↵ | |
6 | return; // no message selected.↵ | 6 | return; // no message selected.↵ | |
7 | }↵ | |||
8 | ↵ | 7 | }↵ | |
9 | Object uid = uids[0];↵ | 8 | Object uid = uids[0];↵ | |
10 | srcFolder = (IMailbox) r.getSourceFolder();↵ | 9 | parentFolder = (IMailbox) r.getSourceFolder();↵ | |
11 | // register for status events↵ | 10 | //register for status events↵ | |
12 | ((StatusObservableImpl) srcFolder.getObservable()).setWorker(worker);↵ | 11 | ((StatusObservableImpl) parentFolder.getObservable()).setWorker(worker);↵ | |
13 | // get value of Subject, From or To header↵ | 12 | // get value of Subject, From or To header↵ | |
14 | Header header = srcFolder.getHeaderFields(uid,↵ | 13 | Header header = parentFolder.getHeaderFields(uid,↵ | |
15 | new String[] {↵ | 14 | new String[] {↵ | |
16 | "Subject", "From", "To" });↵ | 15 | "Subject", "From", "To"});↵ | |
17 | String headerValue = (String) header.get(filterType);↵ | 16 | String headerValue = (String) header.get(vfolderType);↵ | |
18 | if (headerValue == null) {↵ | 17 | if (headerValue == null) {↵ | |
19 | LOG.warning("Error getting " + filterType↵ | 18 | LOG.warning("Error getting " + vfolderType↵ | |
20 | + " header. No filter created");↵ | 19 | + " header. No virtual folder created");↵ | |
21 | return;↵ | |||
22 | }↵ | |||
23 | // create filter↵ | |||
24 | ↵ | 20 | return;↵ | |
21 | }↵ | |||
22 | // create virtual folder (is attached to parentFolder)↵ | |||
25 | String descr = filterType + " contains [" + headerValue + "]";↵ | 23 | String name = vfolderType + " contains [" + headerValue + "]";↵ | |
26 | filter = createFilter(descr, filterType, headerValue↵ | 24 | vfolder = createVirtualFolder(name, vfolderType, headerValue,↵ | |
27 | ); | 25 | parentFolder); | |
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 having the same super class |
Number of node comparisons | 94 |
Number of mapped statements | 14 |
Number of unmapped statements in the first code fragment | 1 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 6.1 |
Clone type | Type 2 |
ID | Statement | ID | Statement | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | IMailFolderCommandReference r = (IMailFolderCommandReference)getReference(); | 1 | IMailFolderCommandReference r = (IMailFolderCommandReference)getReference(); | ||||||||||||||
2 | Object[] uids = r.getUids(); | 2 | Object[] uids = r.getUids(); | ||||||||||||||
3 | if (uids.length == 0) | 3 | if (uids.length == 0) | ||||||||||||||
4 | LOG.fine("No filter created since no message was selected"); |
| 4 | LOG.fine("No virtual folder created since no message was selected"); | |||||||||||||
5 | return; | 5 | return; | ||||||||||||||
6 | Object uid = uids[0]; | 6 | Object uid = uids[0]; | ||||||||||||||
7 | srcFolder = (IMailbox)r.getSourceFolder(); |
| 7 | parentFolder = (IMailbox)r.getSourceFolder(); | |||||||||||||
8 | ((StatusObservableImpl)srcFolder.getObservable()).setWorker(worker); |
| 8 | ((StatusObservableImpl)parentFolder.getObservable()).setWorker(worker); | |||||||||||||
9 | Header header = srcFolder.getHeaderFields(uid, new String[] {"Subject", "From", "To"}); |
| 9 | Header header = parentFolder.getHeaderFields(uid, new String[] {"Subject", "From", "To"}); | |||||||||||||
10 | String headerValue = (String)header.get(filterType); |
| 10 | String headerValue = (String)header.get(vfolderType); | |||||||||||||
11 | if (headerValue == null) | 11 | if (headerValue == null) | ||||||||||||||
12 | LOG.warning("Error getting " + filterType + " header. No filter created"); |
| 12 | LOG.warning("Error getting " + vfolderType + " header. No virtual folder created"); | |||||||||||||
13 | return; | 13 | return; | ||||||||||||||
14 | String descr = filterType + " contains [" + headerValue + "]"; |
| 14 | String name = vfolderType + " contains [" + headerValue + "]"; | |||||||||||||
| 15 | vfolder = createVirtualFolder(name, vfolderType, headerValue, parentFolder); | |||||||||||||||
15 | filter = createFilter(descr, filterType, headerValue); | |
Row | Violation |
---|---|
1 | Expression srcFolder is a field being modified, and thus it cannot be parameterized |
2 | Expression parentFolder is a field being modified, and thus it cannot be parameterized |
3 | Expression srcFolder cannot be parameterized, because it has dependencies to/from statements that will be extracted |
4 | Expression parentFolder cannot be parameterized, because it has dependencies to/from statements that will be extracted |
5 | Expression srcFolder cannot be parameterized, because it has dependencies to/from statements that will be extracted |
6 | Expression parentFolder cannot be parameterized, because it has dependencies to/from statements that will be extracted |
7 | Clone fragment #1 returns variables headerValue, descr , while Clone fragment #2 returns variables headerValue, name |