if (obj == this) { return true; } if (!(obj instanceof Plot)) { return false; } Plot that = (Plot) obj; if (!ObjectUtilities.equal(this.noDataMessage, that.noDataMessage)) { return false; } if (!ObjectUtilities.equal( this.noDataMessageFont, that.noDataMessageFont )) { return false; } if (!PaintUtilities.equal(this.noDataMessagePaint, that.noDataMessagePaint)) { return false; } if (!ObjectUtilities.equal(this.insets, that.insets)) { return false; } if (this.outlineVisible != that.outlineVisible) { return false; } if (!ObjectUtilities.equal(this.outlineStroke, that.outlineStroke)) { return false; } if (!PaintUtilities.equal(this.outlinePaint, that.outlinePaint)) { return false; } if (!PaintUtilities.equal(this.backgroundPaint, that.backgroundPaint)) { return false; } if (!ObjectUtilities.equal(this.backgroundImage, that.backgroundImage)) { return false; } if (this.backgroundImageAlignment != that.backgroundImageAlignment) { return false; } if (this.backgroundImageAlpha != that.backgroundImageAlpha) { return false; } if (this.foregroundAlpha != that.foregroundAlpha) { return false; } if (this.backgroundAlpha != that.backgroundAlpha) { return false; } if (!this.drawingSupplier.equals(that.drawingSupplier)) { return false; } return true;
if (obj == this) { return true; } if (!(obj instanceof XYLineAndShapeRenderer)) { return false; } if (!super.equals(obj)) { return false; } XYLineAndShapeRenderer that = (XYLineAndShapeRenderer) obj; if (!ObjectUtilities.equal(this.linesVisible, that.linesVisible)) { return false; } if (!ObjectUtilities.equal( this.seriesLinesVisible, that.seriesLinesVisible) ) { return false; } if (this.baseLinesVisible != that.baseLinesVisible) { return false; } if (!ShapeUtilities.equal(this.legendLine, that.legendLine)) { return false; } if (!ObjectUtilities.equal(this.shapesVisible, that.shapesVisible)) { return false; } if (!ObjectUtilities.equal( this.seriesShapesVisible, that.seriesShapesVisible) ) { return false; } if (this.baseShapesVisible != that.baseShapesVisible) { return false; } if (!ObjectUtilities.equal(this.shapesFilled, that.shapesFilled)) { return false; } if (!ObjectUtilities.equal( this.seriesShapesFilled, that.seriesShapesFilled) ) { return false; } if (this.baseShapesFilled != that.baseShapesFilled) { return false; } if (this.drawOutlines != that.drawOutlines) { return false; } if (this.useOutlinePaint != that.useOutlinePaint) { return false; } if (this.useFillPaint != that.useFillPaint) { return false; } if (this.drawSeriesLineAsPath != that.drawSeriesLineAsPath) { return false; } return true;
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/src/org/jfree/chart/plot/Plot.java File path: /jfreechart-1.0.10/src/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
Method name: boolean equals(Object) Method name: boolean equals(Object)
Number of AST nodes: 34 Number of AST nodes: 36
1
if (obj == this) {
1
if (obj == this) {
2
            return true;
2
            return true;
3
        }
3
        }
4
        if (!(obj instanceof Plot)) {
4
        if (!(obj instanceof XYLineAndShapeRenderer)) {
5
            return false;
5
            return false;
6
        }
6
        }
7
        Plot that = (Plot
7
        if (!super.equals(obj)) {
8
            return false;
9
        }
8
) obj;
10
        XYLineAndShapeRenderer that = (XYLineAndShapeRenderer) obj;
9
        if (!ObjectUtilities.equal(this.noDataMessage, that.noDataMessage)) {
11
        if (!ObjectUtilities.equal(this.linesVisible, that.linesVisible)) {
10
            return false;
12
            return false;
11
        }
13
        }
12
        if (!ObjectUtilities.equal(
14
        if (!ObjectUtilities.equal(
13
            this.noDataMessageFont, that.noDataMessageFont
15
            this.seriesLinesVisible, that.seriesLinesVisible)
14
        )) {
16
        ) {
15
            return false;
17
            return false;
16
        }
18
        }
17
        if (!PaintUtilities.equal(this.noDataMessagePaint,
19
        if (
18
                that.noDataMessagePaint)) {
20
this.baseLinesVisible != that.baseLinesVisible) {
19
            return false;
21
            return false;
20
        }
22
        }
21
        if (!ObjectUtilities.equal(this.insets, that.insets)) {
23
        if (!ShapeUtilities.equal(this.legendLine, that.legendLine)) {
22
            return false;
24
            return false;
23
        }
25
        }
24
        if (this.outlineVisible != that.outlineVisible) {
26
        if (!ObjectUtilities.equal(this.shapesVisible, that.shapesVisible)) {
25
            return false;
27
            return false;
26
        }
28
        }
27
        if (!ObjectUtilities.equal(this.outlineStroke, that.outlineStroke)) {
29
        if (!ObjectUtilities.equal(
28
            return false;
29
        }
30
        if (!PaintUtilities.equal(this.outlinePaint, that.outlinePaint)
30
            this.seriesShapesVisible, that.seriesShapesVisible)
31
        ) {
32
            return false;
33
        }
31
) {
34
        if (this.baseShapesVisible != that.baseShapesVisible) {
32
            return false;
35
            return false;
33
        }
36
        }
34
        if (!PaintUtilities.equal(this.backgroundPaint, that.backgroundPaint)) {
37
        if (!ObjectUtilities.equal(this.shapesFilled, that.shapesFilled)) {
35
            return false;
38
            return false;
36
        }
39
        }
37
        if (!ObjectUtilities.equal(this.backgroundImage,
40
        if (!ObjectUtilities.equal(
38
                that.backgroundImage)
41
            this.seriesShapesFilled, that.seriesShapesFilled)
39
) {
42
        ) {
40
            return false;
43
            return false;
41
        }
44
        }
42
        if (this.backgroundImageAlignment != that.backgroundImageAlignment) {
45
        if (this.baseShapesFilled != that.baseShapesFilled) {
43
            return false;
46
            return false;
44
        }
47
        }
45
        if (this.backgroundImageAlpha != that.backgroundImageAlpha) {
48
        if (this.drawOutlines != that.drawOutlines) {
46
            return false;
49
            return false;
47
        }
50
        }
48
        if (this.foregroundAlpha != that.foregroundAlpha) {
51
        if (this.useOutlinePaint != that.useOutlinePaint) {
49
            return false;
52
            return false;
50
        }
53
        }
51
        if (this.backgroundAlpha != that.backgroundAlpha) {
54
        if (this.useFillPaint != that.useFillPaint) {
52
            return false;
55
            return false;
53
        }
56
        }
54
        if (!this.drawingSupplier.equals(that.drawingSupplier)) {
57
        if (this.drawSeriesLineAsPath != that.drawSeriesLineAsPath) {
55
            return false;
58
            return false;
56
        }
59
        }
57
        return true;
60
        return true;
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)38.5
Clones locationClones are in different classes
Number of node comparisons456
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements31
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)28.1
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    if (obj == this)
    1
    if (obj == this)
    2
    return true;
    2
    return true;
    3
    if (!(obj instanceof Plot))
    3
    if (!(obj instanceof Plot))
    3
    if (!(obj instanceof XYLineAndShapeRenderer))
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    3
    if (!(obj instanceof XYLineAndShapeRenderer))
    4
    return false;
    4
    return false;
    5
    Plot that = (Plot)obj;
    5
    Plot that = (Plot)obj;
    7
    XYLineAndShapeRenderer that = (XYLineAndShapeRenderer)obj;
    Differences
    Expression1Expression2Difference
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    7
    XYLineAndShapeRenderer that = (XYLineAndShapeRenderer)obj;
    6
    if (!ObjectUtilities.equal(this.noDataMessage, that.noDataMessage))
    6
    if (!ObjectUtilities.equal(this.noDataMessage, that.noDataMessage))
    8
    if (!ObjectUtilities.equal(this.linesVisible, that.linesVisible))
    Differences
    Expression1Expression2Difference
    noDataMessagelinesVisibleVARIABLE_NAME_MISMATCH
    java.lang.Stringjava.lang.BooleanVARIABLE_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    noDataMessagelinesVisibleVARIABLE_NAME_MISMATCH
    java.lang.Stringjava.lang.BooleanVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type java.lang.String of variable this.noDataMessage does not match with type java.lang.Boolean of variable this.linesVisible
    • Make classes java.lang.String and java.lang.Boolean extend a common superclass
    Expression that.noDataMessage cannot be unified with expression that.linesVisible , because common superclass type java.io.Serializable cannot be passed as an argument to public static boolean equal(java.lang.Object, java.lang.Object)
    Expression that.noDataMessage cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.linesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type java.lang.String of variable that.noDataMessage does not match with type java.lang.Boolean of variable that.linesVisible
    • Make classes java.lang.String and java.lang.Boolean extend a common superclass
    8
    if (!ObjectUtilities.equal(this.linesVisible, that.linesVisible))
    7
    return false;
    9
    return false;
    8
    if (!ObjectUtilities.equal(this.noDataMessageFont, that.noDataMessageFont))
    8
    if (!ObjectUtilities.equal(this.noDataMessageFont, that.noDataMessageFont))
    10
    if (!ObjectUtilities.equal(this.seriesLinesVisible, that.seriesLinesVisible))
    Differences
    Expression1Expression2Difference
    noDataMessageFontseriesLinesVisibleVARIABLE_NAME_MISMATCH
    java.awt.Fontorg.jfree.util.BooleanListVARIABLE_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    noDataMessageFontseriesLinesVisibleVARIABLE_NAME_MISMATCH
    java.awt.Fontorg.jfree.util.BooleanListVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type java.awt.Font of variable this.noDataMessageFont does not match with type org.jfree.util.BooleanList of variable this.seriesLinesVisible
    • Make classes java.awt.Font and org.jfree.util.BooleanList extend a common superclass
    Expression that.noDataMessageFont cannot be unified with expression that.seriesLinesVisible , because common superclass type java.io.Serializable cannot be passed as an argument to public static boolean equal(java.lang.Object, java.lang.Object)
    Expression that.noDataMessageFont cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.seriesLinesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type java.awt.Font of variable that.noDataMessageFont does not match with type org.jfree.util.BooleanList of variable that.seriesLinesVisible
    • Make classes java.awt.Font and org.jfree.util.BooleanList extend a common superclass
    10
    if (!ObjectUtilities.equal(this.seriesLinesVisible, that.seriesLinesVisible))
    9
    return false;
    11
    return false;
    10
    if (!PaintUtilities.equal(this.noDataMessagePaint, that.noDataMessagePaint))
    10
    if (!PaintUtilities.equal(this.noDataMessagePaint, that.noDataMessagePaint))
    14
    if (!ShapeUtilities.equal(this.legendLine, that.legendLine))
    Differences
    Expression1Expression2Difference
    noDataMessagePaintlegendLineVARIABLE_NAME_MISMATCH
    java.awt.Paintjava.awt.ShapeVARIABLE_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    noDataMessagePaintlegendLineVARIABLE_NAME_MISMATCH
    java.awt.Paintjava.awt.ShapeVARIABLE_TYPE_MISMATCH
    org.jfree.util.PaintUtilitiesorg.jfree.util.ShapeUtilitiesVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type java.awt.Paint of variable this.noDataMessagePaint does not match with type java.awt.Shape of variable this.legendLine
    • Make classes java.awt.Paint and java.awt.Shape extend a common superclass
    Expression that.noDataMessagePaint cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.legendLine cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type java.awt.Paint of variable that.noDataMessagePaint does not match with type java.awt.Shape of variable that.legendLine
    • Make classes java.awt.Paint and java.awt.Shape extend a common superclass
    Type org.jfree.util.PaintUtilities does not match with type org.jfree.util.ShapeUtilities
    • Make classes org.jfree.util.PaintUtilities and org.jfree.util.ShapeUtilities extend a common superclass
    14
    if (!ShapeUtilities.equal(this.legendLine, that.legendLine))
    11
    return false;
    15
    return false;
    12
    if (!ObjectUtilities.equal(this.insets, that.insets))
    12
    if (!ObjectUtilities.equal(this.insets, that.insets))
    16
    if (!ObjectUtilities.equal(this.shapesVisible, that.shapesVisible))
    Differences
    Expression1Expression2Difference
    insetsshapesVisibleVARIABLE_NAME_MISMATCH
    org.jfree.ui.RectangleInsetsjava.lang.BooleanVARIABLE_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    insetsshapesVisibleVARIABLE_NAME_MISMATCH
    org.jfree.ui.RectangleInsetsjava.lang.BooleanVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.jfree.ui.RectangleInsets of variable this.insets does not match with type java.lang.Boolean of variable this.shapesVisible
    • Make classes org.jfree.ui.RectangleInsets and java.lang.Boolean extend a common superclass
    Expression that.insets cannot be unified with expression that.shapesVisible , because common superclass type java.io.Serializable cannot be passed as an argument to public static boolean equal(java.lang.Object, java.lang.Object)
    Expression that.insets cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.shapesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type org.jfree.ui.RectangleInsets of variable that.insets does not match with type java.lang.Boolean of variable that.shapesVisible
    • Make classes org.jfree.ui.RectangleInsets and java.lang.Boolean extend a common superclass
    16
    if (!ObjectUtilities.equal(this.shapesVisible, that.shapesVisible))
    13
    return false;
    17
    return false;
    14
    if (this.outlineVisible != that.outlineVisible)
    14
    if (this.outlineVisible != that.outlineVisible)
    12
    if (this.baseLinesVisible != that.baseLinesVisible)
    Differences
    Expression1Expression2Difference
    outlineVisiblebaseLinesVisibleVARIABLE_NAME_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    outlineVisiblebaseLinesVisibleVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression that.outlineVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.baseLinesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    12
    if (this.baseLinesVisible != that.baseLinesVisible)
    15
    return false;
    13
    return false;
    16
    if (!ObjectUtilities.equal(this.outlineStroke, that.outlineStroke))
    16
    if (!ObjectUtilities.equal(this.outlineStroke, that.outlineStroke))
    18
    if (!ObjectUtilities.equal(this.seriesShapesVisible, that.seriesShapesVisible))
    Differences
    Expression1Expression2Difference
    outlineStrokeseriesShapesVisibleVARIABLE_NAME_MISMATCH
    java.awt.Strokeorg.jfree.util.BooleanListVARIABLE_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    outlineStrokeseriesShapesVisibleVARIABLE_NAME_MISMATCH
    java.awt.Strokeorg.jfree.util.BooleanListVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type java.awt.Stroke of variable this.outlineStroke does not match with type org.jfree.util.BooleanList of variable this.seriesShapesVisible
    • Make classes java.awt.Stroke and org.jfree.util.BooleanList extend a common superclass
    Expression that.outlineStroke cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.seriesShapesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type java.awt.Stroke of variable that.outlineStroke does not match with type org.jfree.util.BooleanList of variable that.seriesShapesVisible
    • Make classes java.awt.Stroke and org.jfree.util.BooleanList extend a common superclass
    18
    if (!ObjectUtilities.equal(this.seriesShapesVisible, that.seriesShapesVisible))
    17
    return false;
    19
    return false;
    18
    if (!PaintUtilities.equal(this.outlinePaint, that.outlinePaint))
    18
    if (!PaintUtilities.equal(this.outlinePaint, that.outlinePaint))
    22
    if (!ObjectUtilities.equal(this.shapesFilled, that.shapesFilled))
    Differences
    Expression1Expression2Difference
    outlinePaintshapesFilledVARIABLE_NAME_MISMATCH
    java.awt.Paintjava.lang.BooleanVARIABLE_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    outlinePaintshapesFilledVARIABLE_NAME_MISMATCH
    java.awt.Paintjava.lang.BooleanVARIABLE_TYPE_MISMATCH
    org.jfree.util.PaintUtilitiesorg.jfree.util.ObjectUtilitiesVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type java.awt.Paint of variable this.outlinePaint does not match with type java.lang.Boolean of variable this.shapesFilled
    • Make classes java.awt.Paint and java.lang.Boolean extend a common superclass
    Expression that.outlinePaint cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.shapesFilled cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type java.awt.Paint of variable that.outlinePaint does not match with type java.lang.Boolean of variable that.shapesFilled
    • Make classes java.awt.Paint and java.lang.Boolean extend a common superclass
    Type org.jfree.util.PaintUtilities does not match with type org.jfree.util.ObjectUtilities
    • Make classes org.jfree.util.PaintUtilities and org.jfree.util.ObjectUtilities extend a common superclass
    22
    if (!ObjectUtilities.equal(this.shapesFilled, that.shapesFilled))
    19
    return false;
    23
    return false;
    20
    if (!PaintUtilities.equal(this.backgroundPaint, that.backgroundPaint))
    20
    if (!PaintUtilities.equal(this.backgroundPaint, that.backgroundPaint))
    24
    if (!ObjectUtilities.equal(this.seriesShapesFilled, that.seriesShapesFilled))
    Differences
    Expression1Expression2Difference
    backgroundPaintseriesShapesFilledVARIABLE_NAME_MISMATCH
    java.awt.Paintorg.jfree.util.BooleanListVARIABLE_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    backgroundPaintseriesShapesFilledVARIABLE_NAME_MISMATCH
    java.awt.Paintorg.jfree.util.BooleanListVARIABLE_TYPE_MISMATCH
    org.jfree.util.PaintUtilitiesorg.jfree.util.ObjectUtilitiesVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type java.awt.Paint of variable this.backgroundPaint does not match with type org.jfree.util.BooleanList of variable this.seriesShapesFilled
    • Make classes java.awt.Paint and org.jfree.util.BooleanList extend a common superclass
    Expression that.backgroundPaint cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.seriesShapesFilled cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type java.awt.Paint of variable that.backgroundPaint does not match with type org.jfree.util.BooleanList of variable that.seriesShapesFilled
    • Make classes java.awt.Paint and org.jfree.util.BooleanList extend a common superclass
    Type org.jfree.util.PaintUtilities does not match with type org.jfree.util.ObjectUtilities
    • Make classes org.jfree.util.PaintUtilities and org.jfree.util.ObjectUtilities extend a common superclass
    24
    if (!ObjectUtilities.equal(this.seriesShapesFilled, that.seriesShapesFilled))
    21
    return false;
    25
    return false;
    22
    if (!ObjectUtilities.equal(this.backgroundImage, that.backgroundImage))
    22
    if (!ObjectUtilities.equal(this.backgroundImage, that.backgroundImage))
    5
    if (!super.equals(obj))
    Differences
    Expression1Expression2Difference
    ObjectUtilities.equal(this.backgroundImage,that.backgroundImage)super.equals(obj)TYPE_COMPATIBLE_REPLACEMENT
    Preondition Violations
    Expression ObjectUtilities.equal(this.backgroundImage,that.backgroundImage) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Super method call if(!super.equals(obj)) cannot be extracted from method
    5
    if (!super.equals(obj))
    23
    return false;
    6
    return false;
    24
    if (this.backgroundImageAlignment != that.backgroundImageAlignment)
    24
    if (this.backgroundImageAlignment != that.backgroundImageAlignment)
    26
    if (this.baseShapesFilled != that.baseShapesFilled)
    Differences
    Expression1Expression2Difference
    backgroundImageAlignmentbaseShapesFilledVARIABLE_NAME_MISMATCH
    intbooleanVARIABLE_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    backgroundImageAlignmentbaseShapesFilledVARIABLE_NAME_MISMATCH
    intbooleanVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type int of variable this.backgroundImageAlignment does not match with type boolean of variable this.baseShapesFilled
    Expression that.backgroundImageAlignment cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.baseShapesFilled cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type int of variable that.backgroundImageAlignment does not match with type boolean of variable that.baseShapesFilled
    26
    if (this.baseShapesFilled != that.baseShapesFilled)
    25
    return false;
    27
    return false;
    26
    if (this.backgroundImageAlpha != that.backgroundImageAlpha)
    26
    if (this.backgroundImageAlpha != that.backgroundImageAlpha)
    28
    if (this.drawOutlines != that.drawOutlines)
    Differences
    Expression1Expression2Difference
    backgroundImageAlphadrawOutlinesVARIABLE_NAME_MISMATCH
    floatbooleanVARIABLE_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    backgroundImageAlphadrawOutlinesVARIABLE_NAME_MISMATCH
    floatbooleanVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type float of variable this.backgroundImageAlpha does not match with type boolean of variable this.drawOutlines
    Expression that.backgroundImageAlpha cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.drawOutlines cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type float of variable that.backgroundImageAlpha does not match with type boolean of variable that.drawOutlines
    28
    if (this.drawOutlines != that.drawOutlines)
    27
    return false;
    29
    return false;
    28
    if (this.foregroundAlpha != that.foregroundAlpha)
    28
    if (this.foregroundAlpha != that.foregroundAlpha)
    30
    if (this.useOutlinePaint != that.useOutlinePaint)
    Differences
    Expression1Expression2Difference
    foregroundAlphauseOutlinePaintVARIABLE_NAME_MISMATCH
    floatbooleanVARIABLE_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    foregroundAlphauseOutlinePaintVARIABLE_NAME_MISMATCH
    floatbooleanVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type float of variable this.foregroundAlpha does not match with type boolean of variable this.useOutlinePaint
    Expression that.foregroundAlpha cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.useOutlinePaint cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type float of variable that.foregroundAlpha does not match with type boolean of variable that.useOutlinePaint
    30
    if (this.useOutlinePaint != that.useOutlinePaint)
    29
    return false;
    31
    return false;
    30
    if (this.backgroundAlpha != that.backgroundAlpha)
    30
    if (this.backgroundAlpha != that.backgroundAlpha)
    20
    if (this.baseShapesVisible != that.baseShapesVisible)
    Differences
    Expression1Expression2Difference
    backgroundAlphabaseShapesVisibleVARIABLE_NAME_MISMATCH
    floatbooleanVARIABLE_TYPE_MISMATCH
    org.jfree.chart.plot.Plotorg.jfree.chart.renderer.xy.XYLineAndShapeRendererSUBCLASS_TYPE_MISMATCH
    backgroundAlphabaseShapesVisibleVARIABLE_NAME_MISMATCH
    floatbooleanVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type float of variable this.backgroundAlpha does not match with type boolean of variable this.baseShapesVisible
    Expression that.backgroundAlpha cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression that.baseShapesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type float of variable that.backgroundAlpha does not match with type boolean of variable that.baseShapesVisible
    20
    if (this.baseShapesVisible != that.baseShapesVisible)
    31
    return false;
    21
    return false;
    Precondition Violations (57)
    Row Violation
    1Type java.lang.String of variable this.noDataMessage does not match with type java.lang.Boolean of variable this.linesVisible
    2Expression that.noDataMessage cannot be unified with expression that.linesVisible , because common superclass type java.io.Serializable cannot be passed as an argument to public static boolean equal(java.lang.Object, java.lang.Object)
    3Expression that.noDataMessage cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Expression that.linesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5Type java.lang.String of variable that.noDataMessage does not match with type java.lang.Boolean of variable that.linesVisible
    6Type java.awt.Font of variable this.noDataMessageFont does not match with type org.jfree.util.BooleanList of variable this.seriesLinesVisible
    7Expression that.noDataMessageFont cannot be unified with expression that.seriesLinesVisible , because common superclass type java.io.Serializable cannot be passed as an argument to public static boolean equal(java.lang.Object, java.lang.Object)
    8Expression that.noDataMessageFont cannot be parameterized, because it has dependencies to/from statements that will be extracted
    9Expression that.seriesLinesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    10Type java.awt.Font of variable that.noDataMessageFont does not match with type org.jfree.util.BooleanList of variable that.seriesLinesVisible
    11Type java.awt.Paint of variable this.noDataMessagePaint does not match with type java.awt.Shape of variable this.legendLine
    12Expression that.noDataMessagePaint cannot be parameterized, because it has dependencies to/from statements that will be extracted
    13Expression that.legendLine cannot be parameterized, because it has dependencies to/from statements that will be extracted
    14Type java.awt.Paint of variable that.noDataMessagePaint does not match with type java.awt.Shape of variable that.legendLine
    15Type org.jfree.util.PaintUtilities does not match with type org.jfree.util.ShapeUtilities
    16Type org.jfree.ui.RectangleInsets of variable this.insets does not match with type java.lang.Boolean of variable this.shapesVisible
    17Expression that.insets cannot be unified with expression that.shapesVisible , because common superclass type java.io.Serializable cannot be passed as an argument to public static boolean equal(java.lang.Object, java.lang.Object)
    18Expression that.insets cannot be parameterized, because it has dependencies to/from statements that will be extracted
    19Expression that.shapesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    20Type org.jfree.ui.RectangleInsets of variable that.insets does not match with type java.lang.Boolean of variable that.shapesVisible
    21Expression that.outlineVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    22Expression that.baseLinesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    23Type java.awt.Stroke of variable this.outlineStroke does not match with type org.jfree.util.BooleanList of variable this.seriesShapesVisible
    24Expression that.outlineStroke cannot be parameterized, because it has dependencies to/from statements that will be extracted
    25Expression that.seriesShapesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    26Type java.awt.Stroke of variable that.outlineStroke does not match with type org.jfree.util.BooleanList of variable that.seriesShapesVisible
    27Type java.awt.Paint of variable this.outlinePaint does not match with type java.lang.Boolean of variable this.shapesFilled
    28Expression that.outlinePaint cannot be parameterized, because it has dependencies to/from statements that will be extracted
    29Expression that.shapesFilled cannot be parameterized, because it has dependencies to/from statements that will be extracted
    30Type java.awt.Paint of variable that.outlinePaint does not match with type java.lang.Boolean of variable that.shapesFilled
    31Type org.jfree.util.PaintUtilities does not match with type org.jfree.util.ObjectUtilities
    32Type java.awt.Paint of variable this.backgroundPaint does not match with type org.jfree.util.BooleanList of variable this.seriesShapesFilled
    33Expression that.backgroundPaint cannot be parameterized, because it has dependencies to/from statements that will be extracted
    34Expression that.seriesShapesFilled cannot be parameterized, because it has dependencies to/from statements that will be extracted
    35Type java.awt.Paint of variable that.backgroundPaint does not match with type org.jfree.util.BooleanList of variable that.seriesShapesFilled
    36Type org.jfree.util.PaintUtilities does not match with type org.jfree.util.ObjectUtilities
    37Expression ObjectUtilities.equal(this.backgroundImage,that.backgroundImage) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    38Super method call if(!super.equals(obj)) cannot be extracted from method
    39Type int of variable this.backgroundImageAlignment does not match with type boolean of variable this.baseShapesFilled
    40Expression that.backgroundImageAlignment cannot be parameterized, because it has dependencies to/from statements that will be extracted
    41Expression that.baseShapesFilled cannot be parameterized, because it has dependencies to/from statements that will be extracted
    42Type int of variable that.backgroundImageAlignment does not match with type boolean of variable that.baseShapesFilled
    43Type float of variable this.backgroundImageAlpha does not match with type boolean of variable this.drawOutlines
    44Expression that.backgroundImageAlpha cannot be parameterized, because it has dependencies to/from statements that will be extracted
    45Expression that.drawOutlines cannot be parameterized, because it has dependencies to/from statements that will be extracted
    46Type float of variable that.backgroundImageAlpha does not match with type boolean of variable that.drawOutlines
    47Type float of variable this.foregroundAlpha does not match with type boolean of variable this.useOutlinePaint
    48Expression that.foregroundAlpha cannot be parameterized, because it has dependencies to/from statements that will be extracted
    49Expression that.useOutlinePaint cannot be parameterized, because it has dependencies to/from statements that will be extracted
    50Type float of variable that.foregroundAlpha does not match with type boolean of variable that.useOutlinePaint
    51Type float of variable this.backgroundAlpha does not match with type boolean of variable this.baseShapesVisible
    52Expression that.backgroundAlpha cannot be parameterized, because it has dependencies to/from statements that will be extracted
    53Expression that.baseShapesVisible cannot be parameterized, because it has dependencies to/from statements that will be extracted
    54Type float of variable that.backgroundAlpha does not match with type boolean of variable that.baseShapesVisible
    55Clone fragment #1 returns variable that with type org.jfree.chart.plot.Plot , while Clone fragment #2 returns variable that with type org.jfree.chart.renderer.xy.XYLineAndShapeRenderer
    56Not all possible execution flows end in a return statement
    57The refactoring of the clones is infeasible, because classes org.jfree.chart.plot.Plot and org.jfree.chart.renderer.xy.XYLineAndShapeRenderer do not have a common superclass