switch (featureID) { case EcorePackage.EREFERENCE__EANNOTATIONS: getEAnnotations().clear(); getEAnnotations().addAll((Collection<? extends EAnnotation>)newValue); return; case EcorePackage.EREFERENCE__NAME: setName((String)newValue); return; case EcorePackage.EREFERENCE__ORDERED: setOrdered(((Boolean)newValue).booleanValue()); return; case EcorePackage.EREFERENCE__UNIQUE: setUnique(((Boolean)newValue).booleanValue()); return; case EcorePackage.EREFERENCE__LOWER_BOUND: setLowerBound(((Integer)newValue).intValue()); return; case EcorePackage.EREFERENCE__UPPER_BOUND: setUpperBound(((Integer)newValue).intValue()); return; case EcorePackage.EREFERENCE__ETYPE: setEType((EClassifier)newValue); return; case EcorePackage.EREFERENCE__EGENERIC_TYPE: setEGenericType((EGenericType)newValue); return; case EcorePackage.EREFERENCE__CHANGEABLE: setChangeable(((Boolean)newValue).booleanValue()); return; case EcorePackage.EREFERENCE__VOLATILE: setVolatile(((Boolean)newValue).booleanValue()); return; case EcorePackage.EREFERENCE__TRANSIENT: setTransient(((Boolean)newValue).booleanValue()); return; case EcorePackage.EREFERENCE__DEFAULT_VALUE_LITERAL: setDefaultValueLiteral((String)newValue); return; case EcorePackage.EREFERENCE__UNSETTABLE: setUnsettable(((Boolean)newValue).booleanValue()); return; case EcorePackage.EREFERENCE__DERIVED: setDerived(((Boolean)newValue).booleanValue()); return; case EcorePackage.EREFERENCE__CONTAINMENT: setContainment(((Boolean)newValue).booleanValue()); return; case EcorePackage.EREFERENCE__RESOLVE_PROXIES: setResolveProxies(((Boolean)newValue).booleanValue()); return; case EcorePackage.EREFERENCE__EOPPOSITE: setEOpposite((EReference)newValue); return; case EcorePackage.EREFERENCE__EKEYS: getEKeys().clear(); getEKeys().addAll((Collection<? extends EAttribute>)newValue); return; } eDynamicSet(featureID, newValue);
switch (featureID) { case EcorePackage.EATTRIBUTE__EANNOTATIONS: getEAnnotations().clear(); getEAnnotations().addAll((Collection<? extends EAnnotation>)newValue); return; case EcorePackage.EATTRIBUTE__NAME: setName((String)newValue); return; case EcorePackage.EATTRIBUTE__ORDERED: setOrdered(((Boolean)newValue).booleanValue()); return; case EcorePackage.EATTRIBUTE__UNIQUE: setUnique(((Boolean)newValue).booleanValue()); return; case EcorePackage.EATTRIBUTE__LOWER_BOUND: setLowerBound(((Integer)newValue).intValue()); return; case EcorePackage.EATTRIBUTE__UPPER_BOUND: setUpperBound(((Integer)newValue).intValue()); return; case EcorePackage.EATTRIBUTE__ETYPE: setEType((EClassifier)newValue); return; case EcorePackage.EATTRIBUTE__EGENERIC_TYPE: setEGenericType((EGenericType)newValue); return; case EcorePackage.EATTRIBUTE__CHANGEABLE: setChangeable(((Boolean)newValue).booleanValue()); return; case EcorePackage.EATTRIBUTE__VOLATILE: setVolatile(((Boolean)newValue).booleanValue()); return; case EcorePackage.EATTRIBUTE__TRANSIENT: setTransient(((Boolean)newValue).booleanValue()); return; case EcorePackage.EATTRIBUTE__DEFAULT_VALUE_LITERAL: setDefaultValueLiteral((String)newValue); return; case EcorePackage.EATTRIBUTE__UNSETTABLE: setUnsettable(((Boolean)newValue).booleanValue()); return; case EcorePackage.EATTRIBUTE__DERIVED: setDerived(((Boolean)newValue).booleanValue()); return; case EcorePackage.EATTRIBUTE__ID: setID(((Boolean)newValue).booleanValue()); return; } eDynamicSet(featureID, newValue);
Clone fragments detected by clone detection tool
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/impl/EReferenceImpl.java File path: /emf-2.4.1/src/org/eclipse/emf/ecore/impl/EAttributeImpl.java
Method name: void eSet(int, Object) Method name: void eSet(int, Object)
Number of AST nodes: 58 Number of AST nodes: 48
1
switch (featureID)
1
switch (featureID)
2
    {
2
    {
3
      case EcorePackage.EREFERENCE__EANNOTATIONS:
3
      case EcorePackage.EATTRIBUTE__EANNOTATIONS:
4
        getEAnnotations().clear();
4
        getEAnnotations().clear();
5
        getEAnnotations().addAll((Collection<? extends EAnnotation>)newValue);
5
        getEAnnotations().addAll((Collection<? extends EAnnotation>)newValue);
6
        return;
6
        return;
7
      case EcorePackage.EREFERENCE__NAME:
7
      case EcorePackage.EATTRIBUTE__NAME:
8
        setName((String)newValue);
8
        setName((String)newValue);
9
        return;
9
        return;
10
      case EcorePackage.EREFERENCE__ORDERED:
10
      case EcorePackage.EATTRIBUTE__ORDERED:
11
        setOrdered(((Boolean)newValue).booleanValue());
11
        setOrdered(((Boolean)newValue).booleanValue());
12
        return;
12
        return;
13
      case EcorePackage.EREFERENCE__UNIQUE:
13
      case EcorePackage.EATTRIBUTE__UNIQUE:
14
        setUnique(((Boolean)newValue).booleanValue());
14
        setUnique(((Boolean)newValue).booleanValue());
15
        return;
15
        return;
16
      case EcorePackage.EREFERENCE__LOWER_BOUND:
16
      case EcorePackage.EATTRIBUTE__LOWER_BOUND:
17
        setLowerBound(((Integer)newValue).intValue());
17
        setLowerBound(((Integer)newValue).intValue());
18
        return;
18
        return;
19
      case EcorePackage.EREFERENCE__UPPER_BOUND:
19
      case EcorePackage.EATTRIBUTE__UPPER_BOUND:
20
        setUpperBound(((Integer)newValue).intValue());
20
        setUpperBound(((Integer)newValue).intValue());
21
        return;
21
        return;
22
      case EcorePackage.EREFERENCE__ETYPE:
22
      case EcorePackage.EATTRIBUTE__ETYPE:
23
        setEType((EClassifier)newValue);
23
        setEType((EClassifier)newValue);
24
        return;
24
        return;
25
      case EcorePackage.EREFERENCE__EGENERIC_TYPE:
25
      case EcorePackage.EATTRIBUTE__EGENERIC_TYPE:
26
        setEGenericType((EGenericType)newValue);
26
        setEGenericType((EGenericType)newValue);
27
        return;
27
        return;
28
      case EcorePackage.EREFERENCE__CHANGEABLE:
28
      case EcorePackage.EATTRIBUTE__CHANGEABLE:
29
        setChangeable(((Boolean)newValue).booleanValue());
29
        setChangeable(((Boolean)newValue).booleanValue());
30
        return;
30
        return;
31
      case EcorePackage.EREFERENCE__VOLATILE:
31
      case EcorePackage.EATTRIBUTE__VOLATILE:
32
        setVolatile(((Boolean)newValue).booleanValue());
32
        setVolatile(((Boolean)newValue).booleanValue());
33
        return;
33
        return;
34
      case EcorePackage.EREFERENCE__TRANSIENT:
34
      case EcorePackage.EATTRIBUTE__TRANSIENT:
35
        setTransient(((Boolean)newValue).booleanValue());
35
        setTransient(((Boolean)newValue).booleanValue());
36
        return;
36
        return;
37
      case EcorePackage.EREFERENCE__DEFAULT_VALUE_LITERAL:
37
      case EcorePackage.EATTRIBUTE__DEFAULT_VALUE_LITERAL:
38
        setDefaultValueLiteral((String)newValue);
38
        setDefaultValueLiteral((String)newValue);
39
        return;
39
        return;
40
      case EcorePackage.EREFERENCE__UNSETTABLE:
40
      case EcorePackage.EATTRIBUTE__UNSETTABLE:
41
        setUnsettable(((Boolean)newValue).booleanValue());
41
        setUnsettable(((Boolean)newValue).booleanValue());
42
        return;
42
        return;
43
      case EcorePackage.EREFERENCE__DERIVED:
43
      case EcorePackage.EATTRIBUTE__DERIVED:
44
        setDerived(((Boolean)newValue).booleanValue());
44
        setDerived(((Boolean)newValue).booleanValue());
45
        return;
45
        return;
46
      case EcorePackage.EREFERENCE__CONTAINMENT:
46
      case EcorePackage.E
47
        setContainment(((Boolean)newValue).booleanValue());
48
        return;
49
      case EcorePackage.EREFERENCE__RESOLVE_PROXIES:
50
        setResolveProxies(((Boolean)newValue).booleanValue());
51
        return;
52
      case EcorePackage.EREFERENCE__EOPPOSITE:
53
        setEOpposite((EReference)newValue);
54
        return;
55
      case EcorePackage.EREFERENCE__EKEYS:
56
        getEKeys().clear();
57
        getEKeys().addAll((Collection<? extends EAttribute>)newValue
47
ATTRIBUTE__ID:
58
);
48
        setID(((Boolean)newValue).booleanValue());
59
        return;
49
        return;
60
    }
50
    }
61
    eDynamicSet(featureID, newValue);
51
    eDynamicSet(featureID, newValue);
Summary
Number of common nesting structure subtrees1
Number of refactorable cases0
Number of non-refactorable cases1
Time elapsed for finding largest common nesting structure subtrees (ms)0.1
Clones locationClones are in different classes having the same super class
Number of node comparisons1131
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements48
    Number of unmapped statements in the first code fragment10
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)65.4
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
    1
    switch (featureID)
    1
    switch (featureID)
    2
    case EcorePackage.EREFERENCE__EANNOTATIONS:
    2
    case EcorePackage.EREFERENCE__EANNOTATIONS:
    2
    case EcorePackage.EATTRIBUTE__EANNOTATIONS:
    Differences
    Expression1Expression2Difference
    EREFERENCE__EANNOTATIONSEATTRIBUTE__EANNOTATIONSVARIABLE_NAME_MISMATCH
    2
    case EcorePackage.EATTRIBUTE__EANNOTATIONS:
    3
    getEAnnotations().clear();
    3
    getEAnnotations().clear();
    4
    getEAnnotations().addAll((Collection<?extendsEAnnotation>)newValue);
    4
    getEAnnotations().addAll((Collection<?extendsEAnnotation>)newValue);
    5
    return;
    5
    return;
    6
    case EcorePackage.EREFERENCE__NAME:
    6
    case EcorePackage.EREFERENCE__NAME:
    6
    case EcorePackage.EATTRIBUTE__NAME:
    Differences
    Expression1Expression2Difference
    EREFERENCE__NAMEEATTRIBUTE__NAMEVARIABLE_NAME_MISMATCH
    6
    case EcorePackage.EATTRIBUTE__NAME:
    7
    setName((String)newValue);
    7
    setName((String)newValue);
    8
    return;
    8
    return;
    9
    case EcorePackage.EREFERENCE__ORDERED:
    9
    case EcorePackage.EREFERENCE__ORDERED:
    9
    case EcorePackage.EATTRIBUTE__ORDERED:
    Differences
    Expression1Expression2Difference
    EREFERENCE__ORDEREDEATTRIBUTE__ORDEREDVARIABLE_NAME_MISMATCH
    9
    case EcorePackage.EATTRIBUTE__ORDERED:
    10
    setOrdered(((Boolean)newValue).booleanValue());
    10
    setOrdered(((Boolean)newValue).booleanValue());
    11
    return;
    11
    return;
    12
    case EcorePackage.EREFERENCE__UNIQUE:
    12
    case EcorePackage.EREFERENCE__UNIQUE:
    12
    case EcorePackage.EATTRIBUTE__UNIQUE:
    Differences
    Expression1Expression2Difference
    EREFERENCE__UNIQUEEATTRIBUTE__UNIQUEVARIABLE_NAME_MISMATCH
    12
    case EcorePackage.EATTRIBUTE__UNIQUE:
    13
    setUnique(((Boolean)newValue).booleanValue());
    13
    setUnique(((Boolean)newValue).booleanValue());
    14
    return;
    14
    return;
    15
    case EcorePackage.EREFERENCE__LOWER_BOUND:
    15
    case EcorePackage.EREFERENCE__LOWER_BOUND:
    15
    case EcorePackage.EATTRIBUTE__LOWER_BOUND:
    Differences
    Expression1Expression2Difference
    EREFERENCE__LOWER_BOUNDEATTRIBUTE__LOWER_BOUNDVARIABLE_NAME_MISMATCH
    15
    case EcorePackage.EATTRIBUTE__LOWER_BOUND:
    16
    setLowerBound(((Integer)newValue).intValue());
    16
    setLowerBound(((Integer)newValue).intValue());
    17
    return;
    17
    return;
    18
    case EcorePackage.EREFERENCE__UPPER_BOUND:
    18
    case EcorePackage.EREFERENCE__UPPER_BOUND:
    18
    case EcorePackage.EATTRIBUTE__UPPER_BOUND:
    Differences
    Expression1Expression2Difference
    EREFERENCE__UPPER_BOUNDEATTRIBUTE__UPPER_BOUNDVARIABLE_NAME_MISMATCH
    18
    case EcorePackage.EATTRIBUTE__UPPER_BOUND:
    19
    setUpperBound(((Integer)newValue).intValue());
    19
    setUpperBound(((Integer)newValue).intValue());
    20
    return;
    20
    return;
    21
    case EcorePackage.EREFERENCE__ETYPE:
    21
    case EcorePackage.EREFERENCE__ETYPE:
    21
    case EcorePackage.EATTRIBUTE__ETYPE:
    Differences
    Expression1Expression2Difference
    EREFERENCE__ETYPEEATTRIBUTE__ETYPEVARIABLE_NAME_MISMATCH
    21
    case EcorePackage.EATTRIBUTE__ETYPE:
    22
    setEType((EClassifier)newValue);
    22
    setEType((EClassifier)newValue);
    23
    return;
    23
    return;
    24
    case EcorePackage.EREFERENCE__EGENERIC_TYPE:
    24
    case EcorePackage.EREFERENCE__EGENERIC_TYPE:
    24
    case EcorePackage.EATTRIBUTE__EGENERIC_TYPE:
    Differences
    Expression1Expression2Difference
    EREFERENCE__EGENERIC_TYPEEATTRIBUTE__EGENERIC_TYPEVARIABLE_NAME_MISMATCH
    24
    case EcorePackage.EATTRIBUTE__EGENERIC_TYPE:
    25
    setEGenericType((EGenericType)newValue);
    25
    setEGenericType((EGenericType)newValue);
    26
    return;
    26
    return;
    27
    case EcorePackage.EREFERENCE__CHANGEABLE:
    27
    case EcorePackage.EREFERENCE__CHANGEABLE:
    27
    case EcorePackage.EATTRIBUTE__CHANGEABLE:
    Differences
    Expression1Expression2Difference
    EREFERENCE__CHANGEABLEEATTRIBUTE__CHANGEABLEVARIABLE_NAME_MISMATCH
    27
    case EcorePackage.EATTRIBUTE__CHANGEABLE:
    28
    setChangeable(((Boolean)newValue).booleanValue());
    28
    setChangeable(((Boolean)newValue).booleanValue());
    29
    return;
    29
    return;
    30
    case EcorePackage.EREFERENCE__VOLATILE:
    30
    case EcorePackage.EREFERENCE__VOLATILE:
    30
    case EcorePackage.EATTRIBUTE__VOLATILE:
    Differences
    Expression1Expression2Difference
    EREFERENCE__VOLATILEEATTRIBUTE__VOLATILEVARIABLE_NAME_MISMATCH
    30
    case EcorePackage.EATTRIBUTE__VOLATILE:
    31
    setVolatile(((Boolean)newValue).booleanValue());
    31
    setVolatile(((Boolean)newValue).booleanValue());
    32
    return;
    32
    return;
    33
    case EcorePackage.EREFERENCE__TRANSIENT:
    33
    case EcorePackage.EREFERENCE__TRANSIENT:
    33
    case EcorePackage.EATTRIBUTE__TRANSIENT:
    Differences
    Expression1Expression2Difference
    EREFERENCE__TRANSIENTEATTRIBUTE__TRANSIENTVARIABLE_NAME_MISMATCH
    33
    case EcorePackage.EATTRIBUTE__TRANSIENT:
    34
    setTransient(((Boolean)newValue).booleanValue());
    34
    setTransient(((Boolean)newValue).booleanValue());
    35
    return;
    35
    return;
    36
    case EcorePackage.EREFERENCE__DEFAULT_VALUE_LITERAL:
    36
    case EcorePackage.EREFERENCE__DEFAULT_VALUE_LITERAL:
    36
    case EcorePackage.EATTRIBUTE__DEFAULT_VALUE_LITERAL:
    Differences
    Expression1Expression2Difference
    EREFERENCE__DEFAULT_VALUE_LITERALEATTRIBUTE__DEFAULT_VALUE_LITERALVARIABLE_NAME_MISMATCH
    36
    case EcorePackage.EATTRIBUTE__DEFAULT_VALUE_LITERAL:
    37
    setDefaultValueLiteral((String)newValue);
    37
    setDefaultValueLiteral((String)newValue);
    38
    return;
    38
    return;
    39
    case EcorePackage.EREFERENCE__UNSETTABLE:
    39
    case EcorePackage.EREFERENCE__UNSETTABLE:
    39
    case EcorePackage.EATTRIBUTE__UNSETTABLE:
    Differences
    Expression1Expression2Difference
    EREFERENCE__UNSETTABLEEATTRIBUTE__UNSETTABLEVARIABLE_NAME_MISMATCH
    39
    case EcorePackage.EATTRIBUTE__UNSETTABLE:
    40
    setUnsettable(((Boolean)newValue).booleanValue());
    40
    setUnsettable(((Boolean)newValue).booleanValue());
    41
    return;
    41
    return;
    42
    case EcorePackage.EREFERENCE__DERIVED:
    42
    case EcorePackage.EREFERENCE__DERIVED:
    42
    case EcorePackage.EATTRIBUTE__DERIVED:
    Differences
    Expression1Expression2Difference
    EREFERENCE__DERIVEDEATTRIBUTE__DERIVEDVARIABLE_NAME_MISMATCH
    42
    case EcorePackage.EATTRIBUTE__DERIVED:
    43
    setDerived(((Boolean)newValue).booleanValue());
    43
    setDerived(((Boolean)newValue).booleanValue());
    44
    return;
    44
    return;
    45
    case EcorePackage.EREFERENCE__CONTAINMENT:
    45
    case EcorePackage.EREFERENCE__CONTAINMENT:
    45
    case EcorePackage.EATTRIBUTE__ID:
    Differences
    Expression1Expression2Difference
    EREFERENCE__CONTAINMENTEATTRIBUTE__IDVARIABLE_NAME_MISMATCH
    45
    case EcorePackage.EATTRIBUTE__ID:
    46
    setContainment(((Boolean)newValue).booleanValue());
    46
    setContainment(((Boolean)newValue).booleanValue());
    46
    setID(((Boolean)newValue).booleanValue());
    Differences
    Expression1Expression2Difference
    setContainmentsetIDMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression setContainment(((Boolean)newValue).booleanValue()) is a void method call, and thus it cannot be parameterized
    Expression setID(((Boolean)newValue).booleanValue()) is a void method call, and thus it cannot be parameterized
    46
    setID(((Boolean)newValue).booleanValue());
    47
    return;
    47
    return;
    48
    case EcorePackage.EREFERENCE__RESOLVE_PROXIES:
                                                                                                        
    49
    setResolveProxies(((Boolean)newValue).booleanValue());
                                                                                                                        
    50
    return;
    50
    return;
    Preondition Violations
    Unmatched return;
                          
    51
    case EcorePackage.EREFERENCE__EOPPOSITE:
                                                                                            
    52
    setEOpposite((EReference)newValue);
                                                                                  
    53
    return;
    53
    return;
    Preondition Violations
    Unmatched return;
                          
    54
    case EcorePackage.EREFERENCE__EKEYS:
                                                                                    
    55
    getEKeys().clear();
                                                  
    56
    getEKeys().addAll((Collection<?extendsEAttribute>)newValue);
                                                                                                                                        
    57
    return;
    57
    return;
    Preondition Violations
    Unmatched return;
                          
    58
    eDynamicSet(featureID, newValue);
    48
    eDynamicSet(featureID, newValue);
    Precondition Violations (5)
    Row Violation
    1Expression setContainment(((Boolean)newValue).booleanValue()) is a void method call, and thus it cannot be parameterized
    2Expression setID(((Boolean)newValue).booleanValue()) is a void method call, and thus it cannot be parameterized
    3Unmatched return;
    4Unmatched return;
    5Unmatched return;