Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
synergy-api-util
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Raimbek Egemberdiev
synergy-api-util
Commits
70447202
Commit
70447202
authored
Nov 11, 2016
by
Raimbek Egemberdiev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
documentation
parent
ef23b911
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
77 additions
and
0 deletions
+77
-0
src/main/java/kz/arta/synergy/api/asforms/converter/AsFormConverter.java
...z/arta/synergy/api/asforms/converter/AsFormConverter.java
+41
-0
src/main/java/kz/arta/synergy/api/asforms/converter/DefaultAsFormConverter.java
...synergy/api/asforms/converter/DefaultAsFormConverter.java
+2
-0
src/main/java/kz/arta/synergy/api/asforms/converter/components/ComponentConverter.java
.../api/asforms/converter/components/ComponentConverter.java
+34
-0
No files found.
src/main/java/kz/arta/synergy/api/asforms/converter/AsFormConverter.java
View file @
70447202
...
@@ -8,18 +8,59 @@ import kz.arta.synergy.api.asforms.pojo.AsFormWrapper;
...
@@ -8,18 +8,59 @@ import kz.arta.synergy.api.asforms.pojo.AsFormWrapper;
import
java.lang.annotation.Annotation
;
import
java.lang.annotation.Annotation
;
/**
/**
* Интерфейс для конверторов данных форм к объектам и обратно.
* Реализация этого интерфейса должен обеспечивать конвертацию
* данных из {@link AsFormDataContainer} на обычный java объект.
* А так же конвертацию из {@link AsForm} на {@link AsFormDataContainer}.
*
* @author raimbek
* @author raimbek
* @since 11.11.2016
* @since 11.11.2016
*/
*/
public
interface
AsFormConverter
{
public
interface
AsFormConverter
{
/**
* Конвертация с {@link AsForm} на {@link AsFormWrapper}.
* В основном используется перед отправкой данных на synergy, т.е.
* сохранение.
*
* @param asForm объект формы
* @param <T> тип должен быть наследником {@link AsForm}
* @return данные формы в фиде {@link AsFormWrapper}
*/
<
T
extends
AsForm
>
AsFormWrapper
toAsfData
(
T
asForm
);
<
T
extends
AsForm
>
AsFormWrapper
toAsfData
(
T
asForm
);
/**
* Метод чтобы конвертировать объекты таблицы. Должен повторят
* поведение AsFormConverter#toAsfData(AsForm) но с учетом
* индекса (-b1, -b2).
* @see AsFormConverter#toAsfData(AsForm)
*/
<
T
>
AsFormDataContainer
toAsfData
(
T
asForm
,
String
index
);
<
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
);
<
T
extends
AsForm
>
T
toAsForm
(
Class
<
T
>
asFormClass
,
AsFormWrapper
asfData
);
/**
* Повторяет поведение метода {@link #toAsForm(Class, AsFormWrapper)}
* но для динамической таблицы. Учитывает индексы.
*/
<
T
>
T
toAsForm
(
Class
<
T
>
asFormClass
,
AsFormDataContainer
asfData
,
String
index
);
<
T
>
T
toAsForm
(
Class
<
T
>
asFormClass
,
AsFormDataContainer
asfData
,
String
index
);
/**
* Предполагается для конвертаций отдельных данных (полей, компонентов)
* использутся отдельные конверторы. Конечно, можно обойтись без них,
* но полагается без них класс конвертора будет просто огромным. Для
* регистраций таких конверторов используется этот метод.
* @param annotation аннотация компонента
* @param converter сам конвертор
*/
void
registerConverter
(
Class
<?
extends
Annotation
>
annotation
,
ComponentConverter
converter
);
void
registerConverter
(
Class
<?
extends
Annotation
>
annotation
,
ComponentConverter
converter
);
}
}
src/main/java/kz/arta/synergy/api/asforms/converter/DefaultAsFormConverter.java
View file @
70447202
...
@@ -14,6 +14,8 @@ import java.util.HashMap;
...
@@ -14,6 +14,8 @@ import java.util.HashMap;
import
java.util.Map
;
import
java.util.Map
;
/**
/**
* Конвертор данных используемый по умолчанию
*
* @author raimbek
* @author raimbek
* @since 11.11.2016
* @since 11.11.2016
*/
*/
...
...
src/main/java/kz/arta/synergy/api/asforms/converter/components/ComponentConverter.java
View file @
70447202
...
@@ -7,16 +7,50 @@ import java.lang.annotation.Annotation;
...
@@ -7,16 +7,50 @@ import java.lang.annotation.Annotation;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Field
;
/**
/**
* Конвертор отдельных данных (компонентов)
*
* @author raimbek
* @author raimbek
* @since 11.11.2016
* @since 11.11.2016
*/
*/
public
interface
ComponentConverter
{
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
;
<
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
);
String
getType
(
Annotation
annotation
);
/**
* Получение id компонента от аннотаций
* @param annotation аннотация
* @return id компонента
*/
String
getCmpId
(
Annotation
annotation
);
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
;
<
T
>
void
setFieldValue
(
AsFormDataContainer
asfData
,
T
asFormObject
,
Field
field
,
Annotation
annotation
,
String
index
)
throws
IllegalAccessException
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment