11436-6-10

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)); }
if (diagnostics == null) { return false; } else { result = false; diagnostics.add (createDiagnostic (Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_ARGUMENTS_INVALID_SUBSTITUTION, "_UI_EGenericTypeArgumentInvalidSubstitution_diagnostic", new Object [] { getObjectLabel(eTypeArgument, context), getObjectLabel(eTypeParameter, context) }, new Object[] { eGenericType, eTypeArgument, eTypeParameter }, 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 validateEReference_ConsistentKeys(EReference, DiagnosticChain, Map)` |  | Method name: `boolean validateEGenericType_ConsistentArguments(EGenericType, DiagnosticChain, Map)`
Number of AST nodes: 4 |  | Number of AST nodes: 4

1

    if (diagnostics == null)↵

1

    if (diagnostics == null)↵

2

                {↵

2

                {↵

3

                  return false;↵

3

                  return false;↵

4

                }↵

4

                }↵

5

                else↵

5

                else↵

6

                {↵

6

                {↵

7

                  result = false;↵

7

                  result = false;↵

8

                  diagnostics.add↵

8

                  diagnostics.add↵

9

                    (createDiagnostic↵

9

                    (createDiagnostic↵

10

                      (Diagnostic.ERROR,↵

10

                      (Diagnostic.ERROR,↵

11

                       DIAGNOSTIC_SOURCE,↵

11

                       DIAGNOSTIC_SOURCE,↵

12

                       CONSISTENT_KEYS,↵

12

                       CONSISTENT_↵

13

                       "_UI_EReferenceConsistentKeys↵

13

    ARGUMENTS_INVALID_SUBSTITUTION,↵

14

    _diagnostic",↵

14

                       "_UI_EGenericTypeArgumentInvalidSubstitution_diagnostic",↵

15

     ↵

15

                       new Object[] { getObjectLabel(eAttribute, context) },↵

16

                        new Object [] ↵

16

                       new Object[] { eReference, eAttribute↵

17

                        { ↵

18

                          getObjectLabel(eTypeArgument, context), ↵

19

                          getObjectLabel(eTypeParameter, context) ↵

20

                        },↵

17

     },↵

21

                       new Object[] { eGenericType, eTypeArgument, eTypeParameter },↵

18

                       context));↵

22

                       context));↵

23

        ↵

19

                }

24

                }

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

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

   8

       if (diagnostics == null)

   30

       if (diagnostics == null)

   9

       return false;

   31

       return false;

       else

       else

   10

       result = false;

   32

       result = false;

   11

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

   11 | diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_KEYS, "_UI_EReferenceConsistentKeys_diagnostic", new Object[] {getObjectLabel(eAttribute, context)}, new Object[] {eReference, eAttribute}, context));
   33 | diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_ARGUMENTS_INVALID_SUBSTITUTION, "_UI_EGenericTypeArgumentInvalidSubstitution_diagnostic", new Object[] {getObjectLabel(eTypeArgument, context), getObjectLabel(eTypeParameter, context)}, new Object[] {eGenericType, eTypeArgument, eTypeParameter}, context));

   Differences
   Expression1 | Expression2 | Difference
   --- | --- | ---
   CONSISTENT_KEYS | CONSISTENT_ARGUMENTS_INVALID_SUBSTITUTION | VARIABLE_NAME_MISMATCH
   "_UI_EReferenceConsistentKeys_diagnostic" | "_UI_EGenericTypeArgumentInvalidSubstitution_diagnostic" | LITERAL_VALUE_MISMATCH
   {getObjectLabel(eAttribute,context)} | {getObjectLabel(eTypeArgument,context),getObjectLabel(eTypeParameter,context)} | ARRAY_INITIALIZER_EXPRESSION_NUMBER_MISMATCH
   {eReference,eAttribute} | {eGenericType,eTypeArgument,eTypeParameter} | ARRAY_INITIALIZER_EXPRESSION_NUMBER_MISMATCH

   33

       diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, CONSISTENT_ARGUMENTS_INVALID_SUBSTITUTION, "_UI_EGenericTypeArgumentInvalidSubstitution_diagnostic", new Object[] {getObjectLabel(eTypeArgument, context), getObjectLabel(eTypeParameter, context)}, new Object[] {eGenericType, eTypeArgument, eTypeParameter}, context));

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