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