package kz.arta.synergy.workflow.mobile.android.forms.mobile.components;

/**
 * Created by neox on 30.06.15.
 * Интерфейс для работы с компонентами
 */
public interface IMobileComponents {

    /**
     * Заголовок компонента
     *
     * @param label заголовок
     */
    void setLabel(String label);

    /**
     * Идентификатор компонента
     *
     * @param id id компонента
     */
    void setId(String id);

    /**
     * Получение текущего типа компонента
     *
     * @return string
     */
    String getType();

    /**
     * Тип компонента
     *
     * @param type тип
     */
    void setType(String type);

    /**
     * Получение текущего значения компонента
     *
     * @return string
     */
    String getValue();

    /**
     * Значение компонента
     *
     * @param value значение
     */
    void setValue(String value);

    /**
     * Получение текущего идентификатора компонента
     *
     * @return string
     */
    String getID();

    /**
     * Возвращает описание компонента как объект Json
     *
     * @return json
     */
    String getJson();

    /**
     * Метод включает/выключает компонент
     *
     * @param enabled true/false
     */
    void enabled(boolean enabled);

    /**
     * Обязателен компонент или нет
     * @param required true/false
     */
    void setRequired(String required);

}
