package ru.hflabs.rcd.model.definition;
import lombok.Getter;
import lombok.Setter;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import java.io.Serializable;
/**
* Класс <class>ModelFieldDefinition</class> описывает поле модели данных
*/
@Getter
@Setter
@XmlAccessorType(XmlAccessType.PROPERTY)
public class ModelFieldDefinition implements Serializable {
private static final long serialVersionUID = 7597564802539149033L;
/** Перечисляет типы полей */
public static enum FieldType {
STRING,
NUMBER,
BOOLEAN,
DATE
}
/** Тип поля */
private FieldType type;
/** Минимальная длинна поля (NULL - если нет ограничений) */
private Long minLength;
/** Максимальная длинна поля (NULL - если нет ограничений) */
private Long maxLength;
/** Признак, указывающий, что поле обязательно для заполнения */
private boolean required;
/** Регулярное выражение проверки значени поля (NULL - если нет ограничений) */
private String pattern;
/** Признак, указывающий, что по полю может быть сортировка */
private boolean sortable;
public ModelFieldDefinition() {
this.type = FieldType.STRING;
this.minLength = null;
this.maxLength = null;
this.required = false;
this.pattern = null;
this.sortable = false;
}
}