/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.module.cam.service; import java.util.List; import org.kuali.kfs.module.cam.businessobject.AssetLock; public interface AssetLockService { /** * Adding an indicator to indicate whether or not ignore locking * info when deleting existing asset locks. This will be used to update * asset locks if locking info updated as well. * Check and Lock for AssetLock. * * @param locks * new asset lock list * @param ignoreLockingInfoText * indicate whether or not to ignore locking information when * delete existing asset locks granted to document * @return */ boolean checkAndSetAssetLocks(List<AssetLock> locks, boolean ignoreLockingInfoForDeletion); /** * Delete all locks holding by documentNumber. * * @param documentNumber * @param additionalInformation */ void deleteAssetLocks(String documentNumber, String lockingInformation); /** * Helper method to generate AssetLock instances. * * @param capitalAssetNumber * @param documentNumber * @param documentType * @param additionalInformation * @return */ List<AssetLock> buildAssetLockHelper(List<Long> capitalAssetNumbers, String documentNumber, String documentType, String lockingInformation); /** * Check if document has any asset locks * * @param documentNumber * @param lockingInformation * @return */ boolean isAssetLockedByCurrentDocument(String documentNumber, String lockingInformation); /** * Check if assets are locked by other document. * * @param assetNumbers * @param documentTypeName * @param excludingDocumentNumber * @return */ boolean isAssetLocked(List<Long> assetNumbers, String documentTypeName, String excludingDocumentNumber); List<String> getAssetLockingDocuments(List<Long> assetNumbers, String documentTypeName, String excludingDocumentNumber); }