switch (featureID) { case EcorePackage.EANNOTATION__EANNOTATIONS: return ((InternalEList<?>)getEAnnotations()).basicRemove(otherEnd, msgs); case EcorePackage.EANNOTATION__DETAILS: return ((InternalEList<?>)getDetails()).basicRemove(otherEnd, msgs); case EcorePackage.EANNOTATION__EMODEL_ELEMENT: return basicSetEModelElement(null, msgs); case EcorePackage.EANNOTATION__CONTENTS: return ((InternalEList<?>)getContents()).basicRemove(otherEnd, msgs); } return eDynamicInverseRemove(otherEnd, featureID, msgs);
switch (featureID) { case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__MIXED: return ((InternalEList<?>)getMixed()).basicRemove(otherEnd, msgs); case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__XMLNS_PREFIX_MAP: return ((InternalEList<?>)getXMLNSPrefixMap()).basicRemove(otherEnd, msgs); case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__XSI_SCHEMA_LOCATION: return ((InternalEList<?>)getXSISchemaLocation()).basicRemove(otherEnd, msgs); case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION: return ((InternalEList<?>)getProcessingInstruction()).basicRemove(otherEnd, msgs); } return eDynamicInverseRemove(otherEnd, featureID, msgs);
Clone fragments detected by clone detection tool
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/impl/EAnnotationImpl.java File path: /emf-2.4.1/src/org/eclipse/emf/ecore/xml/type/impl/XMLTypeDocumentRootImpl.java
Method name: NotificationChain eInverseRemove(InternalEObject, int, NotificationChain) Method name: NotificationChain eInverseRemove(InternalEObject, int, NotificationChain)
Number of AST nodes: 10 Number of AST nodes: 10
1
switch (featureID)
1
switch (featureID)
2
    {
2
    {
3
      case EcorePackage.EANNOTATION__EANNOTATIONS:
3
      case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__MIXED:
4
        return ((InternalEList<?>)getEAnnotations()).basicRemove(otherEnd, msgs);
4
        return ((InternalEList<?>)getMixed()).basicRemove(otherEnd, msgs);
5
      case EcorePackage.EANNOTATION__DETAILS:
5
      case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
6
        return ((InternalEList<?>)getDetails()).basicRemove(otherEnd, msgs);
6
        return ((InternalEList<?>)getXMLNSPrefixMap()).basicRemove(otherEnd, msgs);
7
      case EcorePackage.EANNOTATION__EMODEL_ELEMENT:
7
      case XMLTypePackage.
8
        return basicSetEModelElement(null
8
XML_TYPE_DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
9
, msgs);
9
        return ((InternalEList<?>)getXSISchemaLocation()).basicRemove(otherEnd, msgs);
10
      case EcorePackage.EANNOTATION__CONTENTS:
10
      case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION:
11
        return ((InternalEList<?>)getContents()).basicRemove(otherEnd, msgs);
11
        return ((InternalEList<?>)getProcessingInstruction()).basicRemove(otherEnd, msgs);
12
    }
12
    }
13
    return eDynamicInverseRemove(otherEnd, featureID, msgs);
13
    return eDynamicInverseRemove(otherEnd, featureID, msgs);
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.0
Clones locationClones are in different classes having the same super class
Number of node comparisons42
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements10
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)27.7
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    switch (featureID)
    1
    switch (featureID)
    2
    case EcorePackage.EANNOTATION__EANNOTATIONS:
    2
    case EcorePackage.EANNOTATION__EANNOTATIONS:
    2
    case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__MIXED:
    Differences
    Expression1Expression2Difference
    org.eclipse.emf.ecore.EcorePackageorg.eclipse.emf.ecore.xml.type.XMLTypePackageVARIABLE_TYPE_MISMATCH
    EANNOTATION__EANNOTATIONSXML_TYPE_DOCUMENT_ROOT__MIXEDVARIABLE_NAME_MISMATCH
    Preondition Violations
    Type org.eclipse.emf.ecore.EcorePackage of variable EcorePackage does not match with type org.eclipse.emf.ecore.xml.type.XMLTypePackage of variable XMLTypePackage
    • Make classes org.eclipse.emf.ecore.EcorePackage and org.eclipse.emf.ecore.xml.type.XMLTypePackage extend a common superclass
    2
    case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__MIXED:
    3
    return ((InternalEList<?>)getEAnnotations()).basicRemove(otherEnd, msgs);
    3
    return ((InternalEList<?>)getEAnnotations()).basicRemove(otherEnd, msgs);
    3
    return ((InternalEList<?>)getMixed()).basicRemove(otherEnd, msgs);
    Differences
    Expression1Expression2Difference
    getEAnnotationsgetMixedMETHOD_INVOCATION_NAME_MISMATCH
    org.eclipse.emf.common.util.EListorg.eclipse.emf.ecore.util.FeatureMapVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.eclipse.emf.common.util.EList<org.eclipse.emf.ecore.EAnnotation> of variable getEAnnotations() does not match with type org.eclipse.emf.ecore.util.FeatureMap of variable getMixed()
    • Make classes org.eclipse.emf.common.util.EList and org.eclipse.emf.ecore.util.FeatureMap extend a common superclass
    3
    return ((InternalEList<?>)getMixed()).basicRemove(otherEnd, msgs);
    4
    case EcorePackage.EANNOTATION__DETAILS:
    4
    case EcorePackage.EANNOTATION__DETAILS:
    4
    case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
    Differences
    Expression1Expression2Difference
    org.eclipse.emf.ecore.EcorePackageorg.eclipse.emf.ecore.xml.type.XMLTypePackageVARIABLE_TYPE_MISMATCH
    EANNOTATION__DETAILSXML_TYPE_DOCUMENT_ROOT__XMLNS_PREFIX_MAPVARIABLE_NAME_MISMATCH
    Preondition Violations
    Type org.eclipse.emf.ecore.EcorePackage of variable EcorePackage does not match with type org.eclipse.emf.ecore.xml.type.XMLTypePackage of variable XMLTypePackage
    • Make classes org.eclipse.emf.ecore.EcorePackage and org.eclipse.emf.ecore.xml.type.XMLTypePackage extend a common superclass
    4
    case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__XMLNS_PREFIX_MAP:
    5
    return ((InternalEList<?>)getDetails()).basicRemove(otherEnd, msgs);
    5
    return ((InternalEList<?>)getDetails()).basicRemove(otherEnd, msgs);
    5
    return ((InternalEList<?>)getXMLNSPrefixMap()).basicRemove(otherEnd, msgs);
    Differences
    Expression1Expression2Difference
    getDetailsgetXMLNSPrefixMapMETHOD_INVOCATION_NAME_MISMATCH
    5
    return ((InternalEList<?>)getXMLNSPrefixMap()).basicRemove(otherEnd, msgs);
    6
    case EcorePackage.EANNOTATION__EMODEL_ELEMENT:
    6
    case EcorePackage.EANNOTATION__EMODEL_ELEMENT:
    6
    case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
    Differences
    Expression1Expression2Difference
    org.eclipse.emf.ecore.EcorePackageorg.eclipse.emf.ecore.xml.type.XMLTypePackageVARIABLE_TYPE_MISMATCH
    EANNOTATION__EMODEL_ELEMENTXML_TYPE_DOCUMENT_ROOT__XSI_SCHEMA_LOCATIONVARIABLE_NAME_MISMATCH
    Preondition Violations
    Type org.eclipse.emf.ecore.EcorePackage of variable EcorePackage does not match with type org.eclipse.emf.ecore.xml.type.XMLTypePackage of variable XMLTypePackage
    • Make classes org.eclipse.emf.ecore.EcorePackage and org.eclipse.emf.ecore.xml.type.XMLTypePackage extend a common superclass
    6
    case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__XSI_SCHEMA_LOCATION:
    7
    return basicSetEModelElement(null, msgs);
    7
    return basicSetEModelElement(null, msgs);
    7
    return ((InternalEList<?>)getXSISchemaLocation()).basicRemove(otherEnd, msgs);
    Differences
    Expression1Expression2Difference
    basicSetEModelElementbasicRemoveMETHOD_INVOCATION_NAME_MISMATCH
    nullotherEndTYPE_COMPATIBLE_REPLACEMENT
    ((InternalEList)getXSISchemaLocation())MISSING_METHOD_INVOCATION_EXPRESSION
    7
    return ((InternalEList<?>)getXSISchemaLocation()).basicRemove(otherEnd, msgs);
    8
    case EcorePackage.EANNOTATION__CONTENTS:
    8
    case EcorePackage.EANNOTATION__CONTENTS:
    8
    case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION:
    Differences
    Expression1Expression2Difference
    org.eclipse.emf.ecore.EcorePackageorg.eclipse.emf.ecore.xml.type.XMLTypePackageVARIABLE_TYPE_MISMATCH
    EANNOTATION__CONTENTSXML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTIONVARIABLE_NAME_MISMATCH
    Preondition Violations
    Type org.eclipse.emf.ecore.EcorePackage of variable EcorePackage does not match with type org.eclipse.emf.ecore.xml.type.XMLTypePackage of variable XMLTypePackage
    • Make classes org.eclipse.emf.ecore.EcorePackage and org.eclipse.emf.ecore.xml.type.XMLTypePackage extend a common superclass
    8
    case XMLTypePackage.XML_TYPE_DOCUMENT_ROOT__PROCESSING_INSTRUCTION:
    9
    return ((InternalEList<?>)getContents()).basicRemove(otherEnd, msgs);
    9
    return ((InternalEList<?>)getContents()).basicRemove(otherEnd, msgs);
    9
    return ((InternalEList<?>)getProcessingInstruction()).basicRemove(otherEnd, msgs);
    Differences
    Expression1Expression2Difference
    getContentsgetProcessingInstructionMETHOD_INVOCATION_NAME_MISMATCH
    org.eclipse.emf.common.util.EListorg.eclipse.emf.common.util.EListVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.eclipse.emf.common.util.EList<org.eclipse.emf.ecore.EObject> of variable getContents() does not match with type org.eclipse.emf.common.util.EList<org.eclipse.emf.ecore.xml.type.ProcessingInstruction> of variable getProcessingInstruction()
    • Make classes org.eclipse.emf.common.util.EList and org.eclipse.emf.common.util.EList extend a common superclass
    9
    return ((InternalEList<?>)getProcessingInstruction()).basicRemove(otherEnd, msgs);
    10
    return eDynamicInverseRemove(otherEnd, featureID, msgs);
    10
    return eDynamicInverseRemove(otherEnd, featureID, msgs);
    Precondition Violations (6)
    Row Violation
    1Type org.eclipse.emf.ecore.EcorePackage of variable EcorePackage does not match with type org.eclipse.emf.ecore.xml.type.XMLTypePackage of variable XMLTypePackage
    2Type org.eclipse.emf.common.util.EList<org.eclipse.emf.ecore.EAnnotation> of variable getEAnnotations() does not match with type org.eclipse.emf.ecore.util.FeatureMap of variable getMixed()
    3Type org.eclipse.emf.ecore.EcorePackage of variable EcorePackage does not match with type org.eclipse.emf.ecore.xml.type.XMLTypePackage of variable XMLTypePackage
    4Type org.eclipse.emf.ecore.EcorePackage of variable EcorePackage does not match with type org.eclipse.emf.ecore.xml.type.XMLTypePackage of variable XMLTypePackage
    5Type org.eclipse.emf.ecore.EcorePackage of variable EcorePackage does not match with type org.eclipse.emf.ecore.xml.type.XMLTypePackage of variable XMLTypePackage
    6Type org.eclipse.emf.common.util.EList<org.eclipse.emf.ecore.EObject> of variable getContents() does not match with type org.eclipse.emf.common.util.EList<org.eclipse.emf.ecore.xml.type.ProcessingInstruction> of variable getProcessingInstruction()