File path: /jfreechart-1.0.10/src/org/jfree/data/general/DatasetUtilities.java | File path: /jfreechart-1.0.10/src/org/jfree/data/general/DatasetUtilities.java | |||
Method name: Number findMaximumDomainValue(XYDataset)
|
Method name: Number findMaximumRangeValue(XYDataset)
|
|||
Number of AST nodes: 22 | Number of AST nodes: 21 | |||
1 | if (dataset == null) {↵ | 1 | if (dataset ↵ | |
2 | throw new IllegalArgumentException("Null 'dataset' argument.");↵ | |||
3 | }↵ | |||
4 | Number result = null;↵ | |||
5 | // if the dataset implements DomainInfo, life is easy↵ | |||
6 | if (dataset instanceof DomainInfo) {↵ | 2 | instanceof RangeInfo) {↵ | |
7 | DomainInfo info = (DomainInfo) dataset;↵ | 3 | RangeInfo info = (RangeInfo) dataset;↵ | |
8 | return new Double(info.getDomainUpperBound(true));↵ | 4 | return new Double(info.getRangeUpperBound(true));↵ | |
9 | }↵ | 5 | }↵ | |
10 | // hasn't implemented DomainInfo, so iterate...↵ | 6 | // hasn't implemented RangeInfo, so we'll have to iterate...↵ | |
11 | else {↵ | 7 | else {↵ | |
12 | double maximum = Double.NEGATIVE_INFINITY;↵ | 8 | double maximum = Double.NEGATIVE_INFINITY;↵ | |
13 | int seriesCount = dataset.getSeriesCount();↵ | 9 | int seriesCount = dataset.getSeriesCount();↵ | |
14 | for (int series = 0; series < seriesCount; series++) {↵ | 10 | for (int series = 0; series < seriesCount; series++) {↵ | |
15 | int itemCount = dataset.getItemCount(series);↵ | 11 | int itemCount = dataset.getItemCount(series);↵ | |
16 | for (int item = 0; item < itemCount; item++) {↵ | 12 | for (int item = 0; item < itemCount; item++) {↵ | |
17 | double value;↵ | 13 | double value;↵ | |
18 | if (dataset instanceof IntervalXYDataset) {↵ | 14 | if (dataset instanceof IntervalXYDataset) {↵ | |
19 | IntervalXYDataset intervalXYData↵ | 15 | IntervalXYDataset intervalXYData↵ | |
20 | = (IntervalXYDataset) dataset;↵ | 16 | = (IntervalXYDataset) dataset;↵ | |
21 | value = intervalXYData.getEndX↵ | 17 | value = intervalXYData.getEndYValue(series, item);↵ | |
18 | }↵ | |||
19 | else if (dataset instanceof OHLCDataset) {↵ | |||
20 | OHLCDataset highLowData = (OHLCDataset) dataset;↵ | |||
22 | Value(series, item);↵ | 21 | value = highLowData.getHighValue(series, item);↵ | |
23 | }↵ | 22 | }↵ | |
24 | else {↵ | 23 | else {↵ | |
25 | value = dataset.getXValue(series, item);↵ | 24 | value = dataset.getYValue(series, item);↵ | |
26 | }↵ | 25 | }↵ | |
27 | if (!Double.isNaN(value)) {↵ | 26 | if (!Double.isNaN(value)) {↵ | |
28 | maximum = Math.max(maximum, value);↵ | 27 | maximum = Math.max(maximum, value);↵ | |
29 | }↵ | 28 | }↵ | |
30 | }↵ | 29 | }↵ | |
31 | }↵ | 30 | }↵ | |
32 | if (maximum == Double.NEGATIVE_INFINITY) {↵ | 31 | if (maximum == Double.NEGATIVE_INFINITY) {↵ | |
33 | result = null;↵ | 32 | return null;↵ | |
34 | }↵ | 33 | }↵ | |
35 | else {↵ | 34 | else {↵ | |
36 | result = new Double(maximum);↵ | 35 | return new Double(maximum);↵ | |
37 | }↵ | 36 | }↵ | |
38 | }↵ | 37 |
| |
39 | return result; | |||
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.8 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 54 |
Number of mapped statements | 11 |
Number of unmapped statements in the first code fragment | 8 |
Number of unmapped statements in the second code fragment | 10 |
Time elapsed for statement mapping (ms) | 177.2 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | Number result = null; | | ||||||||||||||||||
4 | if (dataset instanceof DomainInfo) |
| 3 | if (dataset instanceof RangeInfo) | ||||||||||||||||
|
| 4 | RangeInfo info = (RangeInfo)dataset; | |||||||||||||||||
5 | DomainInfo info = (DomainInfo)dataset; |
| | |||||||||||||||||
6 | return new Double(info.getDomainUpperBound(true)); |
| 5 | return new Double(info.getRangeUpperBound(true)); | ||||||||||||||||
else | else | |||||||||||||||||||
7 | double maximum = Double.NEGATIVE_INFINITY; | 6 | double maximum = Double.NEGATIVE_INFINITY; | |||||||||||||||||
8 | int seriesCount = dataset.getSeriesCount(); | 7 | int seriesCount = dataset.getSeriesCount(); | |||||||||||||||||
9 | for (int series = 0; series < seriesCount; series++) | 8 | for (int series = 0; series < seriesCount; series++) | |||||||||||||||||
10 | int itemCount = dataset.getItemCount(series); | 9 | int itemCount = dataset.getItemCount(series); | |||||||||||||||||
11 | for (int item = 0; item < itemCount; item++) | 10 | for (int item = 0; item < itemCount; item++) | |||||||||||||||||
12 | double value; | 11 | double value; | |||||||||||||||||
|
| 12 | if (dataset instanceof IntervalXYDataset) | |||||||||||||||||
|
| 13 | IntervalXYDataset intervalXYData = (IntervalXYDataset)dataset; | |||||||||||||||||
|
| 14 | value = intervalXYData.getEndYValue(series, item); | |||||||||||||||||
|
| 15 | else if (dataset instanceof OHLCDataset) | |||||||||||||||||
|
| 16 | OHLCDataset highLowData = (OHLCDataset)dataset; | |||||||||||||||||
|
| 17 | value = highLowData.getHighValue(series, item); | |||||||||||||||||
| else | |||||||||||||||||||
|
| 18 | value = dataset.getYValue(series, item); | |||||||||||||||||
13 | if (dataset instanceof IntervalXYDataset) |
| | |||||||||||||||||
14 | IntervalXYDataset intervalXYData = (IntervalXYDataset)dataset; |
| | |||||||||||||||||
15 | value = intervalXYData.getEndXValue(series, item); |
| | |||||||||||||||||
else | | |||||||||||||||||||
16 | value = dataset.getXValue(series, item); |
| | |||||||||||||||||
17 | if (!Double.isNaN(value)) | 19 | if (!Double.isNaN(value)) | |||||||||||||||||
18 | maximum = Math.max(maximum, value); | 20 | maximum = Math.max(maximum, value); | |||||||||||||||||
19 | if (maximum == Double.NEGATIVE_INFINITY) | 21 | if (maximum == Double.NEGATIVE_INFINITY) | |||||||||||||||||
20 | result = null; | | ||||||||||||||||||
else | | |||||||||||||||||||
21 | result = new Double(maximum); |
| | |||||||||||||||||
|
| 23 | return new Double(maximum); | |||||||||||||||||
|
| 22 | return null; |
Row | Violation |
---|---|
1 | Type org.jfree.data.DomainInfo does not match with type org.jfree.data.RangeInfo |
2 | Unmatched statement RangeInfo info=(RangeInfo)dataset; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
3 | Unmatched statement DomainInfo info=(DomainInfo)dataset; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
4 | Expression info.getDomainUpperBound(true) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
5 | Expression info.getRangeUpperBound(true) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
6 | Type org.jfree.data.DomainInfo of variable info does not match with type org.jfree.data.RangeInfo of variable info |
7 | Unmatched statement if(dataset instanceof IntervalXYDataset) cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
8 | Unmatched statement IntervalXYDataset intervalXYData=(IntervalXYDataset)dataset; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
9 | Unmatched statement value=intervalXYData.getEndYValue(series,item); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
10 | Unmatched statement if(dataset instanceof OHLCDataset) cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
11 | Unmatched statement OHLCDataset highLowData=(OHLCDataset)dataset; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
12 | Unmatched statement value=highLowData.getHighValue(series,item); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
13 | Unmatched statement value=dataset.getYValue(series,item); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
14 | Unmatched statement if(dataset instanceof IntervalXYDataset) cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
15 | Unmatched statement IntervalXYDataset intervalXYData=(IntervalXYDataset)dataset; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
16 | Unmatched statement value=intervalXYData.getEndXValue(series,item); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
17 | Unmatched statement value=dataset.getXValue(series,item); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
18 | Unmatched statement result=new Double(maximum); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
19 | Unmatched statement return new Double(maximum); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
20 | Unmatched return new Double(maximum); |
21 | Unmatched return null; |
22 | Not all possible execution flows end in a return statement |