/* * 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.coa.document; import java.util.ArrayList; import java.util.List; import org.kuali.kfs.coa.businessobject.AccountGlobalDetail; import org.kuali.kfs.coa.businessobject.SubObjectCode; import org.kuali.kfs.coa.businessobject.SubObjectCodeGlobal; import org.kuali.kfs.coa.businessobject.SubObjectCodeGlobalDetail; import org.kuali.kfs.sys.KFSConstants; import org.kuali.kfs.sys.document.FinancialSystemGlobalMaintainable; import org.kuali.rice.krad.bo.PersistableBusinessObject; import org.kuali.rice.krad.maintenance.MaintenanceLock; /** * This class provides some specific functionality for the {@link SubObjCdGlobal} maintenance document generateMaintenanceLocks - * generates maintenance locks on {@link SubObjCd} */ public class SubObjCdGlobalMaintainableImpl extends FinancialSystemGlobalMaintainable { /** * This generates maintenance locks on {@link SubObjCd} * * @see org.kuali.rice.kns.maintenance.Maintainable#generateMaintenanceLocks() */ @Override public List<MaintenanceLock> generateMaintenanceLocks() { // create locking rep for each combination of account and object code List<MaintenanceLock> maintenanceLocks = new ArrayList(); SubObjectCodeGlobal subObjCdGlobal = (SubObjectCodeGlobal) getBusinessObject(); for (AccountGlobalDetail accountGlobalDetail : subObjCdGlobal.getAccountGlobalDetails()) { for (SubObjectCodeGlobalDetail subObjCdGlobalDetail : subObjCdGlobal.getSubObjCdGlobalDetails()) { MaintenanceLock maintenanceLock = new MaintenanceLock(); maintenanceLock.setDocumentNumber(subObjCdGlobal.getDocumentNumber()); StringBuffer lockrep = new StringBuffer(); lockrep.append(SubObjectCode.class.getName() + KFSConstants.Maintenance.AFTER_CLASS_DELIM); lockrep.append("fiscalYear" + KFSConstants.Maintenance.AFTER_FIELDNAME_DELIM); lockrep.append(subObjCdGlobalDetail.getUniversityFiscalYear() + KFSConstants.Maintenance.AFTER_VALUE_DELIM); lockrep.append("chartOfAccountsCode" + KFSConstants.Maintenance.AFTER_FIELDNAME_DELIM); lockrep.append(accountGlobalDetail.getChartOfAccountsCode() + KFSConstants.Maintenance.AFTER_VALUE_DELIM); lockrep.append("accountNumber" + KFSConstants.Maintenance.AFTER_FIELDNAME_DELIM); lockrep.append(accountGlobalDetail.getAccountNumber() + KFSConstants.Maintenance.AFTER_VALUE_DELIM); lockrep.append("financialObjectCode" + KFSConstants.Maintenance.AFTER_FIELDNAME_DELIM); lockrep.append(subObjCdGlobalDetail.getFinancialObjectCode() + KFSConstants.Maintenance.AFTER_VALUE_DELIM); lockrep.append("financialSubObjectCode" + KFSConstants.Maintenance.AFTER_FIELDNAME_DELIM); lockrep.append(subObjCdGlobal.getFinancialSubObjectCode()); maintenanceLock.setLockingRepresentation(lockrep.toString()); maintenanceLocks.add(maintenanceLock); } } return maintenanceLocks; } @Override public Class<? extends PersistableBusinessObject> getPrimaryEditedBusinessObjectClass() { return SubObjectCode.class; } }