File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/gui/composer/command/ReplyCommand.java | File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/gui/composer/command/ReplyWithTemplateCommand.java | |||
Method name: void execute(IWorkerStatusController)
|
Method name: void execute(IWorkerStatusController)
|
|||
Number of AST nodes: 18 | Number of AST nodes: 19 | |||
1 | model = new ComposerModel();↵ | 1 | model = new ComposerModel();↵ | |
2 | // get selected folder↵ | 2 | // get selected folder↵ | |
3 | IMailbox folder = (IMailbox) ((MailFolderCommandReference) getReference())↵ | 3 | IMailbox folder = (IMailbox) ((MailFolderCommandReference) getReference())↵ | |
4 | .getSourceFolder();↵ | 4 | .getSourceFolder();↵ | |
5 | // get first selected message↵ | 5 | // get first selected message↵ | |
6 | Object[] uids = ((MailFolderCommandReference) getReference()).getUids();↵ | 6 | Object[] uids = ((MailFolderCommandReference) getReference()).getUids();↵ | |
7 | ↵ | |||
8 | ↵ | |||
9 | // ->set source reference in composermodel↵ | 7 | // ->set source reference in composermodel↵ | |
10 | // when replying this is the original sender's message↵ | 8 | // when replying this is the original sender's message↵ | |
11 | // you selected and replied to↵ | 9 | // you selected and replied to↵ | |
12 | MailFolderCommandReference ref = new MailFolderCommandReference(folder, ↵ | 10 | MailFolderCommandReference ref = new MailFolderCommandReference(folder,↵ | |
13 | uids);↵ | 11 | uids);↵ | |
14 | model.setSourceReference(ref);↵ | 12 | model.setSourceReference(ref);↵ | |
15 | ↵ | |||
16 | ↵ | |||
17 | // setup to, references and account↵ | 13 | // setup to, references and account↵ | |
18 | initHeader(folder, uids);↵ | 14 | initHeader(folder, uids);↵ | |
19 | // get mimeparts↵ | 15 | // get mimeparts↵ | |
20 | MimeTree mimePartTree = folder.getMimePartTree(uids[0]);↵ | 16 | MimeTree mimePartTree = folder.getMimePartTree(uids[0]);↵ | |
21 | XmlElement html = MailConfig.getInstance().getMainFrameOptionsConfig()↵ | 17 | XmlElement html = MailConfig.getInstance().getMainFrameOptionsConfig()↵ | |
22 | .getRoot().getElement("/options/html");↵ | 18 | .getRoot().getElement("/options/html");↵ | |
23 | // Which Bodypart shall be shown? (html/plain)↵ | 19 | // Which Bodypart shall be shown? (html/plain)↵ | |
24 | MimePart bodyPart = null;↵ | 20 | MimePart bodyPart = null;↵ | |
25 | if (Boolean.valueOf(html.getAttribute("prefer")).booleanValue()) {↵ | 21 | if (Boolean.valueOf(html.getAttribute("prefer")).booleanValue()) {↵ | |
26 | bodyPart = mimePartTree.getFirstTextPart("html");↵ | 22 | bodyPart = mimePartTree.getFirstTextPart("html");↵ | |
27 | } else {↵ | 23 | } else {↵ | |
28 | bodyPart = mimePartTree.getFirstTextPart("plain");↵ | 24 | bodyPart = mimePartTree.getFirstTextPart("plain");↵ | |
29 | }↵ | |||
30 | ↵ | 25 | }↵ | |
31 | if (bodyPart != null) {↵ | 26 | if (bodyPart != null) {↵ | |
32 | // setup charset and html↵ | 27 | // setup charset and html↵ | |
33 | initMimeHeader(bodyPart);↵ | 28 | initMimeHeader(bodyPart);↵ | |
34 | Integer[] address = bodyPart.getAddress();↵ | 29 | Integer[] address = bodyPart.getAddress();↵ | |
35 | String quotedBodyText = createQuotedBody(bodyPart.getHeader(), ↵ | 30 | String quotedBodyText = createQuotedBody(bodyPart.getHeader(),↵ | |
36 | folder, uids, address);↵ | 31 | folder, uids, address);↵ | |
37 | // debug output↵ | |||
38 | LOG.fine("Quoted body text:\n" + quotedBodyText);↵ | |||
39 | ↵ | 32 | // get answer from template↵ | |
33 | String templateBody = getTemplateBody();↵ | |||
34 | model.setBodyText(quotedBodyText + templateBody);↵ | |||
35 | } else {↵ | |||
40 | model.setBodyText(quotedBodyText);↵ | 36 | model.setBodyText(getTemplateBody↵ | |
41 | ↵ | 37 | ());↵ | |
42 | } | 38 | } | |
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) | 1.0 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 107 |
Number of mapped statements | 17 |
Number of unmapped statements in the first code fragment | 1 |
Number of unmapped statements in the second code fragment | 2 |
Time elapsed for statement mapping (ms) | 15.4 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | model = new ComposerModel(); | 1 | model = new ComposerModel(); | |||||||||||||
2 | IMailbox folder = (IMailbox)((MailFolderCommandReference)getReference()).getSourceFolder(); | 2 | IMailbox folder = (IMailbox)((MailFolderCommandReference)getReference()).getSourceFolder(); | |||||||||||||
3 | Object[] uids = ((MailFolderCommandReference)getReference()).getUids(); | 3 | Object[] uids = ((MailFolderCommandReference)getReference()).getUids(); | |||||||||||||
4 | MailFolderCommandReference ref = new MailFolderCommandReference(folder, uids); | 4 | MailFolderCommandReference ref = new MailFolderCommandReference(folder, uids); | |||||||||||||
5 | model.setSourceReference(ref); | 5 | model.setSourceReference(ref); | |||||||||||||
6 | initHeader(folder, uids); | 6 | initHeader(folder, uids); | |||||||||||||
7 | MimeTree mimePartTree = folder.getMimePartTree(uids[0]); | 7 | MimeTree mimePartTree = folder.getMimePartTree(uids[0]); | |||||||||||||
8 | XmlElement html = MailConfig.getInstance().getMainFrameOptionsConfig().getRoot().getElement("/options/html"); | 8 | XmlElement html = MailConfig.getInstance().getMainFrameOptionsConfig().getRoot().getElement("/options/html"); | |||||||||||||
9 | MimePart bodyPart = null; | 9 | MimePart bodyPart = null; | |||||||||||||
10 | if (Boolean.valueOf(html.getAttribute("prefer")).booleanValue()) | 10 | if (Boolean.valueOf(html.getAttribute("prefer")).booleanValue()) | |||||||||||||
11 | bodyPart = mimePartTree.getFirstTextPart("html"); | 11 | bodyPart = mimePartTree.getFirstTextPart("html"); | |||||||||||||
else | else | |||||||||||||||
12 | bodyPart = mimePartTree.getFirstTextPart("plain"); | 12 | bodyPart = mimePartTree.getFirstTextPart("plain"); | |||||||||||||
13 | if (bodyPart != null) | 13 | if (bodyPart != null) | |||||||||||||
14 | initMimeHeader(bodyPart); | 14 | initMimeHeader(bodyPart); | |||||||||||||
15 | Integer[] address = bodyPart.getAddress(); | 15 | Integer[] address = bodyPart.getAddress(); | |||||||||||||
16 | String quotedBodyText = createQuotedBody(bodyPart.getHeader(), folder, uids, address); | 16 | String quotedBodyText = createQuotedBody(bodyPart.getHeader(), folder, uids, address); | |||||||||||||
|
| 17 | String templateBody = getTemplateBody(); | |||||||||||||
17 | LOG.fine("Quoted body text:\n" + quotedBodyText); | | ||||||||||||||
18 | model.setBodyText(quotedBodyText); |
| 18 | model.setBodyText(quotedBodyText + templateBody); | ||||||||||||
| else | |||||||||||||||
| 19 | model.setBodyText(getTemplateBody()); |
Row | Violation |
---|---|
1 | Unmatched statement String templateBody=getTemplateBody(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Expression quotedBodyText cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Expression quotedBodyText + templateBody cannot be parameterized, because it has dependencies to/from statements that will be extracted |
4 | Clone fragment #1 returns variables quotedBodyText , while Clone fragment #2 returns variables |