All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gooddata.md.AttributeDisplayForm Maven / Gradle / Ivy

There is a newer version: 3.12.0+api3
Show newest version
package com.gooddata.md;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.gooddata.util.BooleanIntegerDeserializer;
import com.gooddata.util.BooleanIntegerSerializer;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

/**
 * Display form of attribute
 */
@JsonTypeName("attributeDisplayForm")
@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AttributeDisplayForm extends DisplayForm implements Updatable {

    @JsonProperty("content")
    protected final Content content;

    @JsonCreator
    private AttributeDisplayForm(@JsonProperty("meta") Meta meta, @JsonProperty("content") Content content,
            @JsonProperty("links") Links links) {
        super(meta, content, links);
        this.content = content;
    }

    /* Just for serialization test */
    AttributeDisplayForm(String title, String formOf, String expression, boolean isDefault, String ldmExpression, String type, String elements) {
        this(new Meta(title), new Content(formOf, expression, isDefault, ldmExpression, type), new Links(elements));
    }

    @JsonIgnore
    public boolean isDefault() {
        return Boolean.TRUE.equals(content.isDefault());
    }

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private static class Content extends DisplayForm.Content {

        private final boolean isDefault;

        private Content(@JsonProperty("formOf") String formOf, @JsonProperty("expression") String expression,
                @JsonProperty("default") @JsonDeserialize(using = BooleanIntegerDeserializer.class) Boolean isDefault,
                @JsonProperty("ldmexpression") String ldmExpression,
                @JsonProperty("type") String type) {
            super(formOf, expression, ldmExpression, type);
            this.isDefault = isDefault;
        }

        @JsonProperty("default")
        @JsonSerialize(using = BooleanIntegerSerializer.class)
        public Boolean isDefault() {
            return isDefault;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy