package alien4cloud.plugin.mock;
import lombok.*;
import org.elasticsearch.annotation.ObjectField;
import alien4cloud.json.deserializer.PropertyValueDeserializer;
import org.alien4cloud.tosca.model.definitions.PropertyDefinition;
import org.alien4cloud.tosca.model.definitions.PropertyValue;
import alien4cloud.tosca.container.validation.ToscaPropertyConstraint;
import alien4cloud.tosca.container.validation.ToscaPropertyDefaultValueConstraints;
import alien4cloud.tosca.container.validation.ToscaPropertyDefaultValueType;
import alien4cloud.tosca.container.validation.ToscaPropertyPostValidationGroup;
import alien4cloud.ui.form.annotation.FormProperties;
import alien4cloud.ui.form.annotation.FormPropertyDefinition;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
/**
* Predefined configuration for tag edit
*/
@Getter
@Setter
@NoArgsConstructor
@ToscaPropertyDefaultValueType
@ToscaPropertyConstraint
@ToscaPropertyDefaultValueConstraints(groups = { ToscaPropertyPostValidationGroup.class })
@JsonIgnoreProperties(ignoreUnknown = true)
@FormProperties({ "type", "required", "default", "description" })
@ToString
public class MockPropertyDefinition extends PropertyDefinition {
@JsonProperty("default")
@JsonDeserialize(using = PropertyValueDeserializer.class)
@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private PropertyValue defaultValue;
@ObjectField(enabled = false)
@FormPropertyDefinition(type = "string")
public PropertyValue getDefault() {
return this.defaultValue;
}
public void setDefault(PropertyValue defaultValue) {
this.defaultValue = defaultValue;
}
}