Line2D line = new Line2D.Double(); double y0 = dataArea.getMinY(); double y1 = dataArea.getMaxY(); g2.setPaint(im.getOutlinePaint()); g2.setStroke(im.getOutlineStroke()); if (range.contains(start)) { line.setLine(start2d, y0, start2d, y1); g2.draw(line); } if (range.contains(end)) { line.setLine(end2d, y0, end2d, y1); g2.draw(line); }
Line2D line = new Line2D.Double(); double x0 = dataArea.getMinX(); double x1 = dataArea.getMaxX(); g2.setPaint(im.getOutlinePaint()); g2.setStroke(im.getOutlineStroke()); if (range.contains(start)) { line.setLine(x0, start2d, x1, start2d); g2.draw(line); } if (range.contains(end)) { line.setLine(x0, end2d, x1, end2d); g2.draw(line); }
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/src/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java File path: /jfreechart-1.0.10/src/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
Method name: void drawRangeMarker(Graphics2D, CategoryPlot, ValueAxis, Marker, Rectangle2D) Method name: void drawDomainMarker(Graphics2D, XYPlot, ValueAxis, Marker, Rectangle2D)
Number of AST nodes: 11 Number of AST nodes: 11
1
Line2D line = new Line2D.Double();
1
Line2D line = new Line2D.Double();
2
                    double y0 = dataArea.getMinY();
2
                    double x0 = dataArea.getMinX();
3
                    double y1 = dataArea.getMaxY();
3
                    double x1 = dataArea.getMaxX();
4
                    g2.setPaint(im.getOutlinePaint());
4
                    g2.setPaint(im.getOutlinePaint());
5
                    g2.setStroke(im.getOutlineStroke());
5
                    g2.setStroke(im.getOutlineStroke());
6
                    if (range.contains(start)) {
6
                    if (range.contains(start)) {
7
                        line.setLine(start2d, y0, start2d, y1);
7
                        line.setLine(x0, start2d, x1, start2d);
8
                        g2.draw(line);
8
                        g2.draw(line);
9
                    }
9
                    }
10
                    if (range.contains(end)) {
10
                    if (range.contains(end)) {
11
                        line.setLine(end2d, y0, end2d, y1);
11
                        line.setLine(x0, end2d, x1, end2d);
12
                        g2.draw(line);
12
                        g2.draw(line);
13
                    }
13
                    }
Summary
Number of common nesting structure subtrees1
Number of refactorable cases1
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.7
Clones locationClones are in different classes having the same super class
Number of node comparisons48
  1. {Refactorable}
    Mapping Summary
    Number of mapped statements11
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)17.0
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    73
    Line2D line = new Line2D.Double();
    73
    Line2D line = new Line2D.Double();
    74
    double y0 = dataArea.getMinY();
    74
    double y0 = dataArea.getMinY();
    74
    double x0 = dataArea.getMinX();
    Differences
    Expression1Expression2Difference
    y0x0VARIABLE_NAME_MISMATCH
    getMinYgetMinXMETHOD_INVOCATION_NAME_MISMATCH
    74
    double x0 = dataArea.getMinX();
    75
    double y1 = dataArea.getMaxY();
    75
    double y1 = dataArea.getMaxY();
    75
    double x1 = dataArea.getMaxX();
    Differences
    Expression1Expression2Difference
    y1x1VARIABLE_NAME_MISMATCH
    getMaxYgetMaxXMETHOD_INVOCATION_NAME_MISMATCH
    75
    double x1 = dataArea.getMaxX();
    76
    g2.setPaint(im.getOutlinePaint());
    76
    g2.setPaint(im.getOutlinePaint());
    77
    g2.setStroke(im.getOutlineStroke());
    77
    g2.setStroke(im.getOutlineStroke());
    78
    if (range.contains(start))
    78
    if (range.contains(start))
    79
    line.setLine(start2d, y0, start2d, y1);
    79
    line.setLine(start2d, y0, start2d, y1);
    79
    line.setLine(x0, start2d, x1, start2d);
    Differences
    Expression1Expression2Difference
    start2dx0VARIABLE_NAME_MISMATCH
    y0start2dVARIABLE_NAME_MISMATCH
    start2dx1VARIABLE_NAME_MISMATCH
    y1start2dVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression x0 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression y0 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression x1 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression y1 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    79
    line.setLine(x0, start2d, x1, start2d);
    80
    g2.draw(line);
    80
    g2.draw(line);
    81
    if (range.contains(end))
    81
    if (range.contains(end))
    82
    line.setLine(end2d, y0, end2d, y1);
    82
    line.setLine(end2d, y0, end2d, y1);
    82
    line.setLine(x0, end2d, x1, end2d);
    Differences
    Expression1Expression2Difference
    end2dx0VARIABLE_NAME_MISMATCH
    y0end2dVARIABLE_NAME_MISMATCH
    end2dx1VARIABLE_NAME_MISMATCH
    y1end2dVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression x0 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression y0 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression x1 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression y1 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    82
    line.setLine(x0, end2d, x1, end2d);
    83
    g2.draw(line);
    83
    g2.draw(line);
    Precondition Violations (8)
    Row Violation
    1Expression x0 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression y0 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression x1 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Expression y1 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5Expression x0 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6Expression y0 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7Expression x1 cannot be parameterized, because it has dependencies to/from statements that will be extracted
    8Expression y1 cannot be parameterized, because it has dependencies to/from statements that will be extracted