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 }