Commit 70447202 authored by Raimbek Egemberdiev's avatar Raimbek Egemberdiev

documentation

parent ef23b911
......@@ -8,18 +8,59 @@ import kz.arta.synergy.api.asforms.pojo.AsFormWrapper;
import java.lang.annotation.Annotation;
/**
* Интерфейс для конверторов данных форм к объектам и обратно.
* Реализация этого интерфейса должен обеспечивать конвертацию
* данных из {@link AsFormDataContainer} на обычный java объект.
* А так же конвертацию из {@link AsForm} на {@link AsFormDataContainer}.
*
* @author raimbek
* @since 11.11.2016
*/
public interface AsFormConverter {
/**
* Конвертация с {@link AsForm} на {@link AsFormWrapper}.
* В основном используется перед отправкой данных на synergy, т.е.
* сохранение.
*
* @param asForm объект формы
* @param <T> тип должен быть наследником {@link AsForm}
* @return данные формы в фиде {@link AsFormWrapper}
*/
<T extends AsForm> AsFormWrapper toAsfData(T asForm);
/**
* Метод чтобы конвертировать объекты таблицы. Должен повторят
* поведение AsFormConverter#toAsfData(AsForm) но с учетом
* индекса (-b1, -b2).
* @see AsFormConverter#toAsfData(AsForm)
*/
<T> AsFormDataContainer toAsfData(T asForm, String index);
/**
* Конвертация данных из {@link AsFormDataContainer} на java
* объект
*
* @param asFormClass тип объекта, который надо создать
* @param asfData данные
* @param <T> тип должен быть наследником {@link AsForm}
* @return java объект, созданный на основе данных форм
*/
<T extends AsForm> T toAsForm(Class<T> asFormClass, AsFormWrapper asfData);
/**
* Повторяет поведение метода {@link #toAsForm(Class, AsFormWrapper)}
* но для динамической таблицы. Учитывает индексы.
*/
<T> T toAsForm(Class<T> asFormClass, AsFormDataContainer asfData, String index);
/**
* Предполагается для конвертаций отдельных данных (полей, компонентов)
* использутся отдельные конверторы. Конечно, можно обойтись без них,
* но полагается без них класс конвертора будет просто огромным. Для
* регистраций таких конверторов используется этот метод.
* @param annotation аннотация компонента
* @param converter сам конвертор
*/
void registerConverter(Class<? extends Annotation> annotation, ComponentConverter converter);
}
......@@ -14,6 +14,8 @@ import java.util.HashMap;
import java.util.Map;
/**
* Конвертор данных используемый по умолчанию
*
* @author raimbek
* @since 11.11.2016
*/
......
......@@ -7,16 +7,50 @@ import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
/**
* Конвертор отдельных данных (компонентов)
*
* @author raimbek
* @since 11.11.2016
*/
public interface ComponentConverter {
/**
* Преобразование поле на AsFormData
* информация про id и тип берется их аннотаций
* @param asForm объект формы
* @param field поле
* @param annotation аннотация
* @param index индекс, используется при конвертаций объекта таблицы
* @param <T> тип объекта формы
* @return AsFormData
* @throws IllegalAccessException
*/
<T> AsFormData toAsfData(T asForm, Field field, Annotation annotation, String index) throws IllegalAccessException;
/**
* Получение типа компонента synergy {@link kz.arta.synergy.api.asforms.pojo.ComponentTypes}
* от аннотаций
* @param annotation аннотация
* @return тип компонента
*/
String getType(Annotation annotation);
/**
* Получение id компонента от аннотаций
* @param annotation аннотация
* @return id компонента
*/
String getCmpId(Annotation annotation);
/**
* Установить значение поле от данных формы
* @param asfData данные формы
* @param asFormObject java объект формы
* @param field поле соответствующее на данных форм
* @param annotation аннтоация поле
* @param index индекс, если это поле данных таблицы
* @param <T> тип объекта формы
* @throws IllegalAccessException
*/
<T> void setFieldValue(AsFormDataContainer asfData, T asFormObject, Field field, Annotation annotation, String index) throws IllegalAccessException;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment