while (i < ss.length()) {
switch (ss.charAt(i)) {
case '<':
sb.append("<");
i++;
break;
case '>':
sb.append(">");
i++;
break;
case '&':
sb.append("&");
i++;
break;
case '"':
sb.append(""");
i++;
break;
case ' ':
//sb.append(" ");
if (ss.substring(i).startsWith(" ")) {
sb.append(" ");
i = i + 2;
} else if (ss.substring(i).startsWith(" ")) {
sb.append(" ");
i = i + 3;
} else if (ss.substring(i).startsWith(" ")) {
sb.append(" ");
i = i + 2;
} else {
sb.append(' ');
i++;
}
break;
case '\t':
sb.append(" ");
i++;
break;
case '\n':
sb.append("<br>");
i++;
break;
default:
sb.append(ss.charAt(i));
i++;
break;
}
}
while (i < ss.length()) {
switch (ss.charAt(i)) {
case '<':
sb.append("<");
i++;
break;
case '>':
sb.append(">");
i++;
break;
case '&':
sb.append("&");
i++;
break;
case '"':
sb.append(""");
i++;
break;
/*
case '\'':
sb.append("'");
i++;
break;*/
case ' ':
if (ss.substring(i).startsWith(" ")) {
sb.append(" ");
i = i + 2;
} else if (ss.substring(i).startsWith(" ")) {
sb.append(" ");
i = i + 3;
} else if (ss.substring(i).startsWith(" ")) {
sb.append(" ");
i = i + 2;
} else {
sb.append(' ');
i++;
}
break;
case '\t':
sb.append(" ");
i++;
break;
case '\n':
sb.append("<br>");
i++;
break;
default:
sb.append(ss.charAt(i));
i++;
break;
}
}
Clone fragments detected by clone detection tool
File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/parser/text/HtmlParser.java
|
|
File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/parser/text/HtmlParser.java
|
Method name: String substituteSpecialCharacters(String)
|
|
Method name: String substituteSpecialCharactersInHeaderfields(String)
|
Number of AST nodes: 43
|
|
Number of AST nodes: 43
|
|
1 | while (i < ss.length()) {↵ | | 1 | while (i < ss.length()) {↵
|
2 | switch (ss.charAt(i)) {↵ | | 2 | switch (ss.charAt(i)) {↵
|
3 | case '<':↵ | | 3 | case '<':↵
|
4 | sb.append("<");↵ | | 4 | sb.append("<");↵
|
5 | i++;↵ | | 5 | i++;↵
|
|
6 | break;↵ | | 6 | break;↵
|
|
7 | case '>':↵ | | 7 | case '>':↵
|
8 | sb.append(">");↵ | | 8 | sb.append(">");↵
|
9 | i++;↵ | | 9 | i++;↵
|
|
10 | break;↵ | | 10 | break;↵
|
|
11 | case '&':↵ | | 11 | case '&':↵
|
12 | sb.append("&");↵ | | 12 | sb.append("&");↵
|
13 | i++;↵ | | 13 | i++;↵
|
|
14 | break;↵ | | 14 | break;↵
|
|
15 | case '"':↵ | | 15 | case '"':↵
|
16 | sb.append(""");↵ | | 16 | sb.append(""");↵
|
17 | i++;↵ | | 17 | i++;↵
|
|
18 | break;↵ | | 18 | break;↵
|
|
| | | 19 | /*↵
|
19 | case ' ':↵ | | 20 | case '\'':↵
|
|
20 | //sb.append(" ");↵ | | 21 | sb.append("'");↵
|
| | | 22 | i++;↵
|
|
| | | 23 | break;*/↵
|
|
| | | 24 | case ' ':↵
|
|
21 | if (ss.substring(i).startsWith(" ")) {↵ | | 25 | if (ss.substring(i).startsWith(" ")) {↵
|
22 | sb.append(" ");↵ | | 26 | sb.append(" ");↵
|
23 | i = i + 2;↵ | | 27 | i = i + 2;↵
|
24 | } else if (ss.substring(i).startsWith(" ")) {↵ | | 28 | } else if (ss.substring(i).startsWith(" ")) {↵
|
25 | sb.append(" ");↵ | | 29 | sb.append(" ");↵
|
26 | i = i + 3;↵ | | 30 | i = i + 3;↵
|
27 | } else if (ss.substring(i).startsWith(" ")) {↵ | | 31 | } else if (ss.substring(i).startsWith(" ")) {↵
|
28 | sb.append(" ");↵ | | 32 | sb.append(" ");↵
|
29 | i = i + 2;↵ | | 33 | i = i + 2;↵
|
30 | } else {↵ | | 34 | } else {↵
|
31 | sb.append(' ');↵ | | 35 | sb.append(' ');↵
|
32 | i++;↵ | | 36 | i++;↵
|
33 | }↵ | | 37 | }↵
|
|
34 | break;↵ | | 38 | break;↵
|
|
35 | case '\t':↵ | | 39 | case '\t':↵
|
36 | sb.append(" ");↵ | | 40 | sb.append(" ");↵
|
37 | i++;↵ | | 41 | i++;↵
|
|
38 | break;↵ | | 42 | break;↵
|
|
39 | case '\n':↵ | | 43 | case '\n':↵
|
40 | sb.append("<br>");↵ | | 44 | sb.append("<br>");↵
|
41 | i++;↵ | | 45 | i++;↵
|
|
42 | break;↵ | | 46 | break;↵
|
|
43 | default:↵ | | 47 | default:↵
|
44 | sb.append(ss.charAt(i));↵ | | 48 | sb.append(ss.charAt(i));↵
|
45 | i++;↵ | | 49 | i++;↵
|
|
46 | break;↵ | | 50 | break;↵
|
47 | }↵ | | 51 | }↵
|
48 | } | | 52 | }
|
See real code fragment |
|
See real code fragment |
Summary
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) | 3.2 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 598 |
-
{Refactorable}
Mapping Summary
Number of mapped statements | 43 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 0 |
Time elapsed for statement mapping (ms) | 796.7 |
Clone type | Type 1 |
Mapped Statements
ID |
Statement |
|
ID |
Statement |
8 | while (i < ss.length()) | | 8 | while (i < ss.length()) |
9 | | | 9 | |
10 | | | 10 | |
11 | | | 11 | |
12 | | | 12 | |
13 | | | 13 | |
14 | | | 14 | |
15 | | | 15 | |
16 | | | 16 | |
17 | | | 17 | |
18 | | | 18 | |
19 | | | 19 | |
20 | | | 20 | |
21 | | | 21 | |
22 | | | 22 | |
23 | | | 23 | |
24 | | | 24 | |
25 | | | 25 | |
26 | | | 26 | |
27 | if (ss.substring(i).startsWith(" ")) | | 27 | if (ss.substring(i).startsWith(" ")) |
28 | | | 28 | |
29 | | | 29 | |
30 | else if (ss.substring(i).startsWith(" ")) | | 30 | else if (ss.substring(i).startsWith(" ")) |
31 | | | 31 | |
32 | | | 32 | |
33 | else if (ss.substring(i).startsWith(" ")) | | 33 | else if (ss.substring(i).startsWith(" ")) |
34 | | | 34 | |
35 | | | 35 | |
| | | | |
36 | | | 36 | |
37 | | | 37 | |
38 | | | 38 | |
39 | | | 39 | |
40 | | | 40 | |
41 | | | 41 | |
42 | | | 42 | |
43 | | | 43 | |
44 | | | 44 | |
45 | | | 45 | |
46 | | | 46 | |
47 | | | 47 | |
48 | | | 48 | |
49 | | | 49 | |
50 | | | 50 | |
Precondition Violations (0)
Row |
Violation |