1 package net.sumaris.core.extraction.service;
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.SortDirection;
26 import net.sumaris.core.extraction.vo.*;
27 import net.sumaris.core.extraction.vo.filter.ExtractionTypeFilterVO;
28 import net.sumaris.core.extraction.vo.trip.ExtractionTripFilterVO;
29 import net.sumaris.core.vo.technical.extraction.ExtractionProductVO;
30 import org.springframework.transaction.annotation.Propagation;
31 import org.springframework.transaction.annotation.Transactional;
32
33 import javax.annotation.Nullable;
34 import java.io.File;
35 import java.io.IOException;
36 import java.util.List;
37
38
39
40
41 @Transactional
42 public interface ExtractionService {
43
44 @Transactional(readOnly = true)
45 List<ExtractionTypeVO> findByFilter(@Nullable ExtractionTypeFilterVO filter);
46
47 @Transactional
48 ExtractionContextVO execute(ExtractionTypeVO type, @Nullable ExtractionFilterVO filter);
49
50 @Transactional
51 ExtractionResultVO read(ExtractionContextVO context,
52 @Nullable ExtractionFilterVO filter,
53 int offset,
54 int size,
55 String sort,
56 SortDirection direction) ;
57
58 @Transactional
59 ExtractionResultVO executeAndRead(ExtractionTypeVO type,
60 @Nullable ExtractionFilterVO filter,
61 int offset,
62 int size,
63 String sort,
64 SortDirection direction) ;
65
66 @Transactional(rollbackFor = IOException.class)
67 File executeAndDump(ExtractionTypeVO type,
68 ExtractionFilterVO filter) throws IOException;
69
70 @Transactional
71 File executeAndDumpTrips(ExtractionRawFormatEnum format, ExtractionTripFilterVO filter);
72
73 @Transactional
74 void clean(ExtractionContextVO context);
75
76 @Transactional(propagation = Propagation.SUPPORTS)
77 void asyncClean(ExtractionContextVO context);
78
79 @Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
80 ExtractionProductVO toProductVO(ExtractionContextVO context);
81
82 @Transactional
83 ExtractionTypeVO/../../../net/sumaris/core/extraction/vo/ExtractionTypeVO.html#ExtractionTypeVO">ExtractionTypeVO save(ExtractionTypeVO type, ExtractionFilterVO filter);
84 }