1 /*
2 * The Kuali Financial System, a comprehensive financial management system for higher education.
3 *
4 * Copyright 2005-2014 The Kuali Foundation
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Affero General Public License as
8 * published by the Free Software Foundation, either version 3 of the
9 * License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
15 *
16 * You should have received a copy of the GNU Affero General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19 package org.kuali.kfs.module.bc.document.dataaccess;
20
21 import java.util.List;
22
23 import org.kuali.kfs.module.bc.businessobject.BudgetConstructionFundingLock;
24 import org.kuali.kfs.module.bc.businessobject.BudgetConstructionHeader;
25 import org.kuali.kfs.module.bc.businessobject.BudgetConstructionPosition;
26 import org.kuali.kfs.module.bc.businessobject.PendingBudgetConstructionAppointmentFunding;
27
28 /**
29 * Provides methods for retrieving locks.
30 */
31 public interface BudgetConstructionLockDao {
32
33 /**
34 * Retrieves all current account locks for the given user (or all locks if user is null/empty).
35 *
36 * @param lockUnivId - universal id that will be used in lock query
37 * @return budget headers that are locked
38 */
39 public List<BudgetConstructionHeader> getAllAccountLocks(String lockUnivId);
40
41 /**
42 * Retrieves all current transaction locks for the given user (or all locks if user is null/empty).
43 *
44 * @param lockUnivId - universal id that will be used in lock query
45 * @return budget headers that are locked
46 */
47 public List<BudgetConstructionHeader> getAllTransactionLocks(String lockUnivId);
48
49 /**
50 * Retrieves all funding locks that do not have a corresponding position lock for the given user (or all locks if user is
51 * null/empty).
52 *
53 * @param lockUnivId - universal id that will be used in lock query
54 * @return funding locks records
55 */
56 public List<BudgetConstructionFundingLock> getOrphanedFundingLocks(String lockUnivId);
57
58 /**
59 * Retrieves all current position/funding locks for the given user (or all locks if user is null/empty).
60 *
61 * @param lockUnivId - universal id that will be used in lock query
62 * @return position/funding records that are locked.
63 */
64 public List<PendingBudgetConstructionAppointmentFunding> getAllPositionFundingLocks(String lockUnivId);
65
66 /**
67 * Retrieves all current position locks without a funding lock for the given user (or all locks if user is null/empty).
68 *
69 * @param lockUnivId universal id that will be used in lock query
70 * @return positions that are locked.
71 */
72 public List<BudgetConstructionPosition> getOrphanedPositionLocks(String lockUnivId);
73
74 }