11436-3-6

if (diagnostics == null) { return false; } else { result = false; diagnostics.add (createDiagnostic (Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_TYPE_PRIMITIVE_TYPE_NOT_PERMITTED, "_UI_EGenericTypeInvalidPrimitiveType_diagnostic", new Object[] { instanceClassName }, new Object[] { eGenericType }, context)); }
if (diagnostics == null) { return false; } else { result = false; diagnostics.add (createDiagnostic (Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_KEYS, "_UI_EReferenceConsistentKeys_diagnostic", new Object[] { getObjectLabel(eAttribute, context) }, new Object[] { eReference, eAttribute }, 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 validateEGenericType_ConsistentType(EGenericType, DiagnosticChain, Map)` |  | Method name: `boolean validateEReference_ConsistentKeys(EReference, 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

                }↵

5

            else↵

6

                else↵

6

            {↵

7

                {↵

7

              result = false;↵

8

                  result = false;↵

8

              diagnostics.add↵

9

                  diagnostics.add↵

9

                (createDiagnostic↵

10

                    (createDiagnostic↵

10

                  (Diagnostic.ERROR,↵

11

                      (Diagnostic.ERROR,↵

11

                   DIAGNOSTIC_SOURCE,↵

12

                       DIAGNOSTIC_SOURCE,↵

12

                   CONSISTENT_TYPE_PRIMITIVE_TYPE_NOT_PERMITTED,↵

13

                       CONSISTENT_↵

13

                   "_UI_EGenericTypeInvalidPrimitiveType↵

14

    KEYS,↵

14

    _diagnostic",↵

15

                       "_UI_EReferenceConsistentKeys_diagnostic",↵

15

                   new Object[] { instanceClassName },↵

16

                       new Object[] { ↵

17

    getObjectLabel(eAttribute, context) },↵

16

                   new Object[] { eGenericType },↵

18

                       new Object[] { eReference, eAttribute },↵

17

                   context));↵

19

                       context));↵

18

            }

20

                }

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) | 0.2
Clones location | Clones are declared in the same class
Number of node comparisons | 17

1. {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) | 1616.3
   Clone type | Type 2

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

   63

       if (diagnostics == null)

   8

       if (diagnostics == null)

   64

       return false;

   9

       return false;

       else

       else

   65

       result = false;

   10

       result = false;

   66

       diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_TYPE_PRIMITIVE_TYPE_NOT_PERMITTED, "_UI_EGenericTypeInvalidPrimitiveType_diagnostic", new Object[] {instanceClassName}, new Object[] {eGenericType}, context));

   66 | diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_TYPE_PRIMITIVE_TYPE_NOT_PERMITTED, "_UI_EGenericTypeInvalidPrimitiveType_diagnostic", new Object[] {instanceClassName}, new Object[] {eGenericType}, context));
   11 | diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_KEYS, "_UI_EReferenceConsistentKeys_diagnostic", new Object[] {getObjectLabel(eAttribute, context)}, new Object[] {eReference, eAttribute}, context));

   Differences
   Expression1 | Expression2 | Difference
   --- | --- | ---
   CONSISTENT_TYPE_PRIMITIVE_TYPE_NOT_PERMITTED | CONSISTENT_KEYS | VARIABLE_NAME_MISMATCH
   "_UI_EGenericTypeInvalidPrimitiveType_diagnostic" | "_UI_EReferenceConsistentKeys_diagnostic" | LITERAL_VALUE_MISMATCH
   instanceClassName | getObjectLabel(eAttribute,context) | TYPE_COMPATIBLE_REPLACEMENT
   {eGenericType} | {eReference,eAttribute} | ARRAY_INITIALIZER_EXPRESSION_NUMBER_MISMATCH

   11

       diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_KEYS, "_UI_EReferenceConsistentKeys_diagnostic", new Object[] {getObjectLabel(eAttribute, context)}, new Object[] {eReference, eAttribute}, context));

   Precondition Violations (0)
   Row | Violation
   --- | ---