Skip to content

Commit b987605

Browse files
committed
Differentiate AttributeContent from Content
Mainly same field name 'content' as in DisplayForm parent was causing chaos.
1 parent dff627f commit b987605

2 files changed

Lines changed: 42 additions & 26 deletions

File tree

src/main/java/com/gooddata/md/AttributeDisplayForm.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,11 @@
55
*/
66
package com.gooddata.md;
77

8-
import com.fasterxml.jackson.annotation.JsonInclude;
9-
import com.gooddata.util.BooleanDeserializer;
10-
import com.gooddata.util.BooleanIntegerSerializer;
11-
import com.fasterxml.jackson.annotation.JsonCreator;
12-
import com.fasterxml.jackson.annotation.JsonIgnore;
13-
import com.fasterxml.jackson.annotation.JsonProperty;
14-
import com.fasterxml.jackson.annotation.JsonTypeInfo;
15-
import com.fasterxml.jackson.annotation.JsonTypeName;
8+
import com.fasterxml.jackson.annotation.*;
169
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
1710
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
11+
import com.gooddata.util.BooleanDeserializer;
12+
import com.gooddata.util.BooleanIntegerSerializer;
1813
import com.gooddata.util.GoodDataToStringBuilder;
1914

2015
/**
@@ -27,24 +22,29 @@ public class AttributeDisplayForm extends DisplayForm implements Updatable {
2722

2823
private static final long serialVersionUID = -7903851496647992573L;
2924

25+
/** @deprecated use {@link #attributeContent} instead */
26+
@Deprecated
27+
protected final AttributeContent content;
28+
3029
@JsonProperty("content")
31-
protected final Content content;
30+
protected final AttributeContent attributeContent;
3231

3332
@JsonCreator
34-
private AttributeDisplayForm(@JsonProperty("meta") Meta meta, @JsonProperty("content") Content content,
33+
private AttributeDisplayForm(@JsonProperty("meta") Meta meta, @JsonProperty("content") AttributeContent content,
3534
@JsonProperty("links") Links links) {
3635
super(meta, content, links);
3736
this.content = content;
37+
this.attributeContent = content;
3838
}
3939

4040
/* Just for serialization test */
4141
AttributeDisplayForm(String title, String formOf, String expression, boolean isDefault, String ldmExpression, String type, String elements) {
42-
this(new Meta(title), new Content(formOf, expression, isDefault, ldmExpression, type), new Links(elements));
42+
this(new Meta(title), new AttributeContent(formOf, expression, isDefault, ldmExpression, type), new Links(elements));
4343
}
4444

4545
@JsonIgnore
4646
public boolean isDefault() {
47-
return Boolean.TRUE.equals(content.isDefault());
47+
return Boolean.TRUE.equals(attributeContent.isDefault());
4848
}
4949

5050
@Override
@@ -53,15 +53,15 @@ public String toString() {
5353
}
5454

5555
@JsonInclude(JsonInclude.Include.NON_NULL)
56-
private static class Content extends DisplayForm.Content {
56+
private static class AttributeContent extends DisplayForm.Content {
5757

5858
private static final long serialVersionUID = -8502672468934478137L;
5959
private final boolean isDefault;
6060

61-
private Content(@JsonProperty("formOf") String formOf, @JsonProperty("expression") String expression,
62-
@JsonProperty("default") @JsonDeserialize(using = BooleanDeserializer.class) Boolean isDefault,
63-
@JsonProperty("ldmexpression") String ldmExpression,
64-
@JsonProperty("type") String type) {
61+
private AttributeContent(@JsonProperty("formOf") String formOf, @JsonProperty("expression") String expression,
62+
@JsonProperty("default") @JsonDeserialize(using = BooleanDeserializer.class) Boolean isDefault,
63+
@JsonProperty("ldmexpression") String ldmExpression,
64+
@JsonProperty("type") String type) {
6565
super(formOf, expression, ldmExpression, type);
6666
this.isDefault = isDefault;
6767
}

src/test/java/com/gooddata/md/AttributeDisplayFormTest.java

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@
1818

1919
public class AttributeDisplayFormTest {
2020

21-
public static final String FORM_OF = "/gdc/md/PROJECT_ID/obj/DF_FORM_OF_ID";
22-
public static final String EXPRESSION = "[/gdc/md/PROJECT_ID/obj/DF_EXPRESSION_ID]";
23-
public static final boolean DEFAULT = false;
24-
public static final boolean DEFAULT_TRUE = true;
25-
public static final String LDM_EXPRESSION = "";
21+
private static final String FORM_OF = "/gdc/md/PROJECT_ID/obj/DF_FORM_OF_ID";
22+
private static final String EXPRESSION = "[/gdc/md/PROJECT_ID/obj/DF_EXPRESSION_ID]";
23+
private static final boolean DEFAULT = false;
24+
private static final boolean DEFAULT_TRUE = true;
25+
private static final String LDM_EXPRESSION = "";
2626
private static final String TYPE = "TYPE";
2727
private static final String ELEMENTS_LINK = "/gdc/md/PROJECT_ID/obj/DF_ID/elements";
28+
private static final String TITLE = "Person Name";
2829

2930
@SuppressWarnings("deprecation")
3031
@Test
@@ -43,33 +44,48 @@ public void shouldDeserialize() throws Exception {
4344

4445
@Test
4546
public void testSerialization() throws Exception {
46-
final DisplayForm attrDF = new AttributeDisplayForm("Person Name", FORM_OF, EXPRESSION, DEFAULT,
47+
final DisplayForm attrDF = new AttributeDisplayForm(TITLE, FORM_OF, EXPRESSION, DEFAULT,
4748
LDM_EXPRESSION, TYPE, ELEMENTS_LINK);
4849

4950
assertThat(attrDF, jsonEquals(resource("md/attributeDisplayForm-input.json")));
5051
}
5152

5253
@Test
53-
public void shouldSerializeSameAsDeserializationInput() throws Exception {
54+
public void shouldSerializeSameAsDeserializationInput() {
5455
final AttributeDisplayForm attrDF = readObjectFromResource("/md/attributeDisplayForm.json", AttributeDisplayForm.class);
5556
assertThat(attrDF, jsonEquals(resource("md/attributeDisplayForm-inputOrig.json")));
5657
}
5758

5859
@Test
5960
public void testToStringFormat() {
60-
final DisplayForm attrDF = new AttributeDisplayForm("Person Name", FORM_OF, EXPRESSION, DEFAULT,
61+
final DisplayForm attrDF = new AttributeDisplayForm(TITLE, FORM_OF, EXPRESSION, DEFAULT,
6162
LDM_EXPRESSION, TYPE, ELEMENTS_LINK);
6263

6364
assertThat(attrDF.toString(), matchesPattern(AttributeDisplayForm.class.getSimpleName() + "\\[.*\\]"));
6465
}
6566

6667
@Test
6768
public void testSerializable() throws Exception {
68-
final DisplayForm attrDF = new AttributeDisplayForm("Person Name", FORM_OF, EXPRESSION, DEFAULT,
69+
final DisplayForm attrDF = new AttributeDisplayForm(TITLE, FORM_OF, EXPRESSION, DEFAULT,
6970
LDM_EXPRESSION, TYPE, ELEMENTS_LINK);
7071
final DisplayForm deserialized = SerializationUtils.roundtrip(attrDF);
7172

7273
assertThat(deserialized, jsonEquals(attrDF));
7374
}
7475

76+
@Test
77+
public void testSubclass() {
78+
class Subclass extends AttributeDisplayForm {
79+
private Subclass(final String title, final String formOf, final String expression, final boolean isDefault,
80+
final String ldmExpression,
81+
final String type, final String elements) {
82+
super(title, formOf, expression, isDefault, ldmExpression, type, elements);
83+
}
84+
}
85+
final Subclass subclass = new Subclass(TITLE, FORM_OF, EXPRESSION, DEFAULT, LDM_EXPRESSION, TYPE,
86+
ELEMENTS_LINK);
87+
88+
//noinspection deprecation
89+
assertThat(subclass.content, is(subclass.attributeContent));
90+
}
7591
}

0 commit comments

Comments
 (0)