1 package net.sumaris.core.dao.data;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import net.sumaris.core.dao.technical.model.IEntity;
26 import net.sumaris.core.dao.technical.model.IUpdateDateEntityBean;
27 import net.sumaris.core.util.Beans;
28 import net.sumaris.core.vo.IValueObject;
29 import net.sumaris.core.vo.data.DataFetchOptions;
30 import org.springframework.data.annotation.QueryAnnotation;
31 import org.springframework.data.repository.NoRepositoryBean;
32
33 import java.io.Serializable;
34 import java.util.Date;
35
36 @NoRepositoryBean
37 public interface IEntityConverter<E extends IEntity<? extends Serializable>, V extends IValueObject<? extends Serializable>> {
38
39 V toVO(E source);
40
41 V toVO(E source, DataFetchOptions fetchOptions);
42
43 void toVO(E source, V target, DataFetchOptions fetchOptions, boolean copyIfNull);
44
45 E toEntity(V source);
46
47 void toEntity(V source, E target, boolean copyIfNull);
48
49 V createVO();
50
51 Class<V> getVOClass();
52 }