String svalue = value.toString(); if (escape != null) { svalue = escape.convertText(svalue); } if (!toDOM) { doc.addText(svalue); } else { Node text = document.createTextNode(svalue); currentNode.appendChild(text); handler.recordValues(text, o, f, entry); }
String stringValue = value.toString(); if (escape != null) { stringValue = escape.convertLines(stringValue); } if (!toDOM) { doc.addCDATA(stringValue); } else { Node cdata = document.createCDATASection(stringValue); currentNode.appendChild(cdata); handler.recordValues(cdata, o, f, entry); }
Clone fragments detected by clone detection tool
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/xmi/impl/XMLSaveImpl.java File path: /emf-2.4.1/src/org/eclipse/emf/ecore/xmi/impl/XMLSaveImpl.java
Method name: boolean saveElementFeatureMap(EObject, EStructuralFeature) Method name: boolean saveElementFeatureMap(EObject, EStructuralFeature)
Number of AST nodes: 8 Number of AST nodes: 8
1
String svalue = value.toString();
1
String stringValue = value.toString();
2
          if (escape != null)
2
          if (escape != null)
3
          {
3
          {
4
            svalue =  escape.convertText(svalue);
4
            stringValue = escape.convertLines(stringValue);
5
          }        
5
          }
6
          if (!toDOM)
6
          if (!toDOM)
7
          {    
7
          {
8
            doc.addText(svalue);
8
            doc.addCDATA(stringValue);
9
          }
9
          }
10
          else
10
          else
11
          {
11
          {
12
            Node text = document.createTextNode(svalue);
12
            Node cdata = document.createCDATASection(stringValue);
13
            currentNode.appendChild(text);
13
            currentNode.appendChild(cdata);
14
            handler.recordValues(text, o, f, entry);
14
            handler.recordValues(cdata, o, f, entry);            
15
          }
15
          }
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.3
Clones locationClones are in the same method
Number of node comparisons43
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements7
    Number of unmapped statements in the first code fragment1
    Number of unmapped statements in the second code fragment1
    Time elapsed for statement mapping (ms)235.3
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    26
    String svalue = value.toString();
    26
    String svalue = value.toString();
    35
    String stringValue = value.toString();
    Differences
    Expression1Expression2Difference
    svaluestringValueVARIABLE_NAME_MISMATCH
    35
    String stringValue = value.toString();
    27
    if (escape != null)
    36
    if (escape != null)
    28
    svalue = escape.convertText(svalue);
    28
    svalue = escape.convertText(svalue);
    37
    stringValue = escape.convertLines(stringValue);
    Differences
    Expression1Expression2Difference
    svaluestringValueVARIABLE_NAME_MISMATCH
    convertTextconvertLinesMETHOD_INVOCATION_NAME_MISMATCH
    svaluestringValueVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression escape.convertText(svalue) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression escape.convertLines(stringValue) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    37
    stringValue = escape.convertLines(stringValue);
    29
    if (!toDOM)
    38
    if (!toDOM)
    30
    doc.addText(svalue);
    30
    doc.addText(svalue);
    39
    doc.addCDATA(stringValue);
    Differences
    Expression1Expression2Difference
    addTextaddCDATAMETHOD_INVOCATION_NAME_MISMATCH
    svaluestringValueVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression doc.addText(svalue) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression doc.addCDATA(stringValue) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression doc.addText(svalue) is a void method call, and thus it cannot be parameterized
    Expression doc.addCDATA(stringValue) is a void method call, and thus it cannot be parameterized
    39
    doc.addCDATA(stringValue);
    else
    else
    31
    Node text = document.createTextNode(svalue);
    31
    Node text = document.createTextNode(svalue);
    Preondition Violations
    Unmatched statement Node text=document.createTextNode(svalue); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                                                
                                                                                                                    
    40
    Node cdata = document.createCDATASection(stringValue);
    Preondition Violations
    Unmatched statement Node cdata=document.createCDATASection(stringValue); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    40
    Node cdata = document.createCDATASection(stringValue);
    32
    currentNode.appendChild(text);
    32
    currentNode.appendChild(text);
    41
    currentNode.appendChild(cdata);
    Differences
    Expression1Expression2Difference
    textcdataVARIABLE_NAME_MISMATCH
    41
    currentNode.appendChild(cdata);
    33
    handler.recordValues(text, o, f, entry);
    33
    handler.recordValues(text, o, f, entry);
    42
    handler.recordValues(cdata, o, f, entry);
    Differences
    Expression1Expression2Difference
    textcdataVARIABLE_NAME_MISMATCH
    42
    handler.recordValues(cdata, o, f, entry);
    Precondition Violations (8)
    Row Violation
    1Expression escape.convertText(svalue) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression escape.convertLines(stringValue) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression doc.addText(svalue) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Expression doc.addCDATA(stringValue) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5Expression doc.addText(svalue) is a void method call, and thus it cannot be parameterized
    6Expression doc.addCDATA(stringValue) is a void method call, and thus it cannot be parameterized
    7Unmatched statement Node text=document.createTextNode(svalue); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    8Unmatched statement Node cdata=document.createCDATASection(stringValue); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted