Skip to content

Commit 4ba7b7d

Browse files
authored
Merge pull request #585 from peterlacko/voluntary-measure-filters
Make measure filters in visualisation object voluntary for conversion
2 parents c4f725d + 98da168 commit 4ba7b7d

5 files changed

Lines changed: 41 additions & 11 deletions

File tree

src/main/java/com/gooddata/md/visualization/VisualizationConverter.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ private static List<CompatibilityFilter> convertFilters(final List<FilterItem> f
214214
if (filters == null) {
215215
return new ArrayList<>();
216216
}
217+
217218
List<FilterItem> validFilters = removeIrrelevantFilters(filters);
218219
return getCompatibilityFilters(validFilters);
219220
}
@@ -249,7 +250,14 @@ private static MeasureItem getAfmMeasure(final Measure measure) {
249250
private static MeasureItem convertMeasureFilters(final MeasureItem measure) {
250251
if (measure.getDefinition() instanceof SimpleMeasureDefinition) {
251252
List<FilterItem> filters = ((SimpleMeasureDefinition) measure.getDefinition()).getFilters();
252-
List<FilterItem> validFilters = removeIrrelevantFilters(filters);
253+
254+
List<FilterItem> validFilters;
255+
if (filters == null) {
256+
validFilters = new ArrayList<>();
257+
} else {
258+
validFilters = removeIrrelevantFilters(filters);
259+
}
260+
253261
((SimpleMeasureDefinition) measure.getDefinition()).setFilters(validFilters);
254262
}
255263

src/test/groovy/com/gooddata/md/visualization/VisualizationObjectConverterTest.groovy

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,18 @@ class VisualizationObjectConverterTest extends Specification {
4848
new PositiveAttributeFilter(new UriObjQualifier("/uri/to/displayForm/3"), ["ab", "cd"]),
4949
new AbsoluteDateFilter(new UriObjQualifier("/uri/to/dataSet/1"), new LocalDate("2000-08-30"), new LocalDate("2017-08-07"))
5050
],
51-
[new MeasureItem(new VOSimpleMeasureDefinition(new UriObjQualifier("/uri/to/measure/1"), "sum", false,
52-
[
53-
new PositiveAttributeFilter(new UriObjQualifier("/uri/to/displayForm/3"), []),
54-
new NegativeAttributeFilter(new UriObjQualifier("/uri/to/displayForm/3"), ["ab", "cd"]),
55-
new RelativeDateFilter(new UriObjQualifier("/uri/to/dataSet/2"), "month", 0, -11)
56-
]
57-
),
58-
"measure1", "Measure 1 alias", null)],
51+
[
52+
new MeasureItem(new VOSimpleMeasureDefinition(new UriObjQualifier("/uri/to/measure/0"), null, null, []),
53+
"measure0", "Measure 0 alias", null),
54+
new MeasureItem(new VOSimpleMeasureDefinition(new UriObjQualifier("/uri/to/measure/1"), "sum", false,
55+
[
56+
new PositiveAttributeFilter(new UriObjQualifier("/uri/to/displayForm/3"), []),
57+
new NegativeAttributeFilter(new UriObjQualifier("/uri/to/displayForm/3"), ["ab", "cd"]),
58+
new RelativeDateFilter(new UriObjQualifier("/uri/to/dataSet/2"), "month", 0, -11)
59+
]
60+
),
61+
"measure1", "Measure 1 alias", null)
62+
],
5963
null
6064
)
6165
VisualizationObject visualizationObject = readObjectFromResource("/$COMPLEX_VISUALIZATION", VisualizationObject)

src/test/groovy/com/gooddata/md/visualization/VisualizationObjectTest.groovy

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,13 @@ class VisualizationObjectTest extends Specification {
5959
[
6060
new Bucket("bucket1", [attribute1]),
6161
new Bucket("bucket2", [
62+
new Measure(
63+
new VOSimpleMeasureDefinition(new UriObjQualifier("/uri/to/measure/0"), null, null, null),
64+
"measure0",
65+
"Measure 0 alias",
66+
null,
67+
null
68+
),
6269
new Measure(
6370
measureDefinition,
6471
"measure1",

src/test/resources/md/visualization/complexVisualizationObject.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,18 @@
2525
"localIdentifier": "bucket2",
2626
"items": [
2727
{
28+
"measure": {
29+
"localIdentifier": "measure0",
30+
"alias": "Measure 0 alias",
31+
"definition": {
32+
"measureDefinition": {
33+
"item": {
34+
"uri": "/uri/to/measure/0"
35+
}
36+
}
37+
}
38+
}
39+
}, {
2840
"measure": {
2941
"localIdentifier": "measure1",
3042
"title": "Measure 1",

src/test/resources/md/visualization/multipleMeasureBucketsVisualization.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
"uri": "/uri/to/measure/1"
2323
},
2424
"aggregation": "sum",
25-
"computeRatio": false,
26-
"filters": []
25+
"computeRatio": false
2726
}
2827
}
2928
}

0 commit comments

Comments
 (0)