11436-4-5

if (diagnostics == null) { return false; } else { result = false; diagnostics.add (createDiagnostic (Diagnostic.ERROR, DIAGNOSTIC_SOURCE, WELL_FORMED_MAP_ENTRY_CLASS, "_UI_EClassNotWellFormedMapEntry_diagnostic", new Object[] { "key" }, new Object[] { eClass }, context)); }
if (diagnostics == null) { return false; } else { result = false; diagnostics.add (createDiagnostic (Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_SUPER_TYPES_CONFLICT, "_UI_EClassConsistentSuperTypes_diagnostic", new Object [] { getObjectLabel(eClassifier, context) }, new Object[] { eClass, eGenericSuperType, eAllGenericSuperTypes.get(index) }, context)); }

Clone fragments detected by clone detection tool
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/util/EcoreValidator.java |  | File path: /emf-2.4.1/src/org/eclipse/emf/ecore/util/EcoreValidator.java
Method name: `boolean validateEClass_WellFormedMapEntryClass(EClass, DiagnosticChain, Map)` |  | Method name: `boolean validateEClass_ConsistentSuperTypes(EClass, DiagnosticChain, Map)`
Number of AST nodes: 4 |  | Number of AST nodes: 4

1

    if (diagnostics == null)↵

1

    if (diagnostics == null)↵

2

            {↵

2

            ↵

3

        {↵

3

              return false;↵

4

                  return false;↵

4

            }↵

5

            ↵

6

        }↵

5

            else↵

7

                else↵

6

            {↵

8

                {↵

7

              result = false;↵

9

                  result = false;↵

8

              diagnostics.add↵

10

                  diagnostics.add↵

9

                (createDiagnostic↵

11

                    (createDiagnostic↵

10

                  (Diagnostic.ERROR,↵

12

                      (Diagnostic.ERROR,↵

11

                   DIAGNOSTIC_SOURCE,↵

13

                       DIAGNOSTIC_SOURCE,↵

12

                   WELL_FORMED_MAP_ENTRY_CLASS,↵

14

                   ↵

15

        CONSISTENT_SUPER_TYPES_CONFLICT,↵

13

                   "_UI_EClassNotWellFormedMapEntry_diagnostic",↵

16

                       "_UI_EClassConsistentSuperTypes_diagnostic",↵

14

                   new Object[] { "key" },↵

17

                       new Object [] { ↵

15

                   new Object[] { eClass },↵

18

    getObjectLabel(eClassifier, context) },↵

19

                       new Object[] { eClass, eGenericSuperType,  eAllGenericSuperTypes.get(index) },↵

16

                   context));↵

20

                       context));↵

17

            }

21

                }

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 declared in the same class
Number of node comparisons | 17

1. {Non-refactorable}

   Mapping Summary
   Number of mapped statements | 4
   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) | 1542.5
   Clone type | Type 2

   Mapped Statements
   ID | Statement |  | ID | Statement
   --- | --- | --- | --- | ---

   5

       if (diagnostics == null)

   22

       if (diagnostics == null)

   6

       return false;

   6 | return false;
   23 | return false;

   Preondition Violations
   Conditional return false;
   Conditional return false;

   23

       return false;

       else

       else

   7

       result = false;

   24

       result = false;

   8

       diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, WELL_FORMED_MAP_ENTRY_CLASS, "_UI_EClassNotWellFormedMapEntry_diagnostic", new Object[] {"key"}, new Object[] {eClass}, context));

   8 | diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, WELL_FORMED_MAP_ENTRY_CLASS, "_UI_EClassNotWellFormedMapEntry_diagnostic", new Object[] {"key"}, new Object[] {eClass}, context));
   25 | diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_SUPER_TYPES_CONFLICT, "_UI_EClassConsistentSuperTypes_diagnostic", new Object[] {getObjectLabel(eClassifier, context)}, new Object[] {eClass, eGenericSuperType, eAllGenericSuperTypes.get(index)}, context));

   Differences
   Expression1 | Expression2 | Difference
   --- | --- | ---
   WELL_FORMED_MAP_ENTRY_CLASS | CONSISTENT_SUPER_TYPES_CONFLICT | VARIABLE_NAME_MISMATCH
   "_UI_EClassNotWellFormedMapEntry_diagnostic" | "_UI_EClassConsistentSuperTypes_diagnostic" | LITERAL_VALUE_MISMATCH
   "key" | getObjectLabel(eClassifier,context) | TYPE_COMPATIBLE_REPLACEMENT
   {eClass} | {eClass,eGenericSuperType,eAllGenericSuperTypes.get(index)} | ARRAY_INITIALIZER_EXPRESSION_NUMBER_MISMATCH

   25

       diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_SUPER_TYPES_CONFLICT, "_UI_EClassConsistentSuperTypes_diagnostic", new Object[] {getObjectLabel(eClassifier, context)}, new Object[] {eClass, eGenericSuperType, eAllGenericSuperTypes.get(index)}, context));

   Precondition Violations (2)
   Row | Violation
   --- | ---
   1 | Conditional return false;
   2 | Conditional return false;