int index = super.indexOf(object);
if (index >= 0)
return index;
// EATM This might be better written as a single loop for the EObject case?
//
if (isEObject())
{
for (int i = 0, size = size(); i < size; ++i)
{
EObject eObject = resolveProxy((EObject)delegateGet(i));
if (eObject == object)
{
return i;
}
}
}
return -1;
int index = super.indexOf(object);
if (index >= 0)
return index;
if (isEObject())
{
for (int i = 0; i < size; ++i)
{
EObject eObject = resolveProxy((EObject)data[i]);
if (eObject == object)
{
return i;
}
}
}
return -1;
Clone fragments detected by clone detection tool
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/util/DelegatingEcoreEList.java
|
|
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/util/EcoreEList.java
|
Method name: int indexOf(Object)
|
|
Method name: int indexOf(Object)
|
Number of AST nodes: 9
|
|
Number of AST nodes: 9
|
|
1 | int index = super.indexOf(object);↵ | | 1 | int index = super.indexOf(object);↵
|
2 | if (index >= 0)↵ | | 2 | if (index >= 0)↵
|
3 | return index;↵ | | 3 | return index;↵
|
|
4 | // EATM This might be better written as a single loop for the EObject case?↵ | | |
|
5 | //↵ | | |
|
6 | if (isEObject())↵ | | 4 | if (isEObject())↵
|
7 | {↵ | | 5 | {↵
|
8 | for (int i = 0, size = size(); i < size; ++i)↵ | | 6 | for (int i = 0; i < size; ++i)↵
|
9 | {↵ | | 7 | {↵
|
10 | EObject eObject = resolveProxy((EObject)delegateGet(i));↵ | | 8 | EObject eObject = resolveProxy((EObject)data[i]);↵
|
11 | if (eObject == object)↵ | | 9 | if (eObject == object)↵
|
12 | {↵ | | 10 | {↵
|
13 | return i;↵ | | 11 | return i;↵
|
14 | }↵ | | 12 | }↵
|
15 | }↵ | | 13 | }↵
|
16 | }↵ | | 14 | }↵
|
|
17 | return -1; | | 15 | return -1;
|
See real code fragment |
|
See real code fragment |
Summary
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.2 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 6 |
-
{Non-refactorable}
Mapping Summary
Number of mapped statements | 2 |
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) | 0.5 |
Clone type | Type 2 |
Mapped Statements
ID |
Statement |
|
ID |
Statement |
| | | 6 | EObject eObject = resolveProxy((EObject)data[i]); |
6 | EObject eObject = resolveProxy((EObject)delegateGet(i)); | | | |
7 | if (eObject == object) | | 7 | if (eObject == object) |
8 | | | 8 | |
Precondition Violations (2)
Row |
Violation |
1 | Unmatched statement EObject eObject=resolveProxy((EObject)data[i]); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Unmatched statement EObject eObject=resolveProxy((EObject)delegateGet(i)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |