1 /*
2 * This file is part of Waarp Project (named also Waarp or GG).
3 *
4 * Copyright (c) 2019, Waarp SAS, and individual contributors by the @author
5 * tags. See the COPYRIGHT.txt in the distribution for a full listing of
6 * individual contributors.
7 *
8 * All Waarp Project is free software: you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or (at your
11 * option) any later version.
12 *
13 * Waarp is distributed in the hope that it will be useful, but WITHOUT ANY
14 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15 * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * Waarp . If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 package org.waarp.openr66.dao;
22
23 import org.waarp.openr66.dao.exception.DAOConnectionException;
24 import org.waarp.openr66.dao.exception.DAONoDataException;
25 import org.waarp.openr66.pojo.Transfer;
26
27 import java.util.List;
28
29 /**
30 * Interface to interact with Transfer objects in the persistance layer
31 */
32 public interface TransferDAO extends AbstractDAO<Transfer> {
33
34 /**
35 * Retrieve all Transfer objects to the given filters in a List from the
36 * persistance layer
37 *
38 * @param filters List of filter
39 *
40 * @throws DAOConnectionException If data access error occurs
41 */
42 List<Transfer> find(List<Filter> filters, int limit)
43 throws DAOConnectionException;
44
45 /**
46 * Retrieve all Transfer objects to the given filters in a List from the
47 * persistance layer
48 *
49 * @param filters List of filter
50 *
51 * @throws DAOConnectionException If data access error occurs
52 */
53 List<Transfer> find(List<Filter> filters, int limit, int offset)
54 throws DAOConnectionException;
55
56 /**
57 * Retrieve all Transfer objects to the given filters in a List from the
58 * persistance layer
59 *
60 * @param filters List of filter
61 *
62 * @throws DAOConnectionException If data access error occurs
63 */
64 List<Transfer> find(List<Filter> filters, String column, boolean ascend)
65 throws DAOConnectionException;
66
67 /**
68 * Retrieve all Transfer objects to the given filters in a List from the
69 * persistance layer
70 *
71 * @param filters List of filter
72 *
73 * @throws DAOConnectionException If data access error occurs
74 */
75 List<Transfer> find(List<Filter> filters, String column, boolean ascend,
76 int limit) throws DAOConnectionException;
77
78 /**
79 * Retrieve all Transfer objects to the given filters in a List from the
80 * persistance layer
81 *
82 * @param filters List of filter
83 *
84 * @throws DAOConnectionException If data access error occurs
85 */
86 List<Transfer> find(List<Filter> filters, String column, boolean ascend,
87 int limit, int offset) throws DAOConnectionException;
88
89 /**
90 * Retrieve Transfer objects count with the given filters
91 *
92 * @param filters List of filter
93 *
94 * @return the count of Transfer objects
95 *
96 * @throws DAOConnectionException If data access error occurs
97 */
98 long count(List<Filter> filters) throws DAOConnectionException;
99
100 /**
101 * Retrieve the Transfer object with the specified Special ID from the
102 * persistance layer
103 *
104 * @param id special ID of the Transfer object requested
105 *
106 * @throws DAOConnectionException If a data access error occurs
107 * @throws DAONoDataException if no data are available
108 */
109 Transfer select(long id, String requester, String requested, String owner)
110 throws DAOConnectionException, DAONoDataException;
111
112 /**
113 * Verify if a Transfer object with the specified Special ID exists in the
114 * persistance layer
115 *
116 * @param id special ID of the Transfer object verified
117 *
118 * @return true if a Transfer object with the specified Special ID exist;
119 * false if no Transfer object
120 * correspond to the specified Special ID.
121 *
122 * @throws DAOConnectionException If a data access error occurs
123 */
124 boolean exist(long id, String requester, String requested, String owner)
125 throws DAOConnectionException;
126 }