/* * 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.businessobject; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.apache.log4j.Logger; import org.kuali.kfs.sys.KFSPropertyConstants; import org.kuali.kfs.sys.context.SpringContext; import org.kuali.rice.krad.bo.GlobalBusinessObjectDetailBase; import org.kuali.rice.krad.service.PersistenceStructureService; import org.kuali.rice.krad.util.ObjectUtils; /** * Business Object representing the account change details entity */ public class AccountGlobalDetail extends GlobalBusinessObjectDetailBase { private static final long serialVersionUID = -6329389744704772474L; private static final Logger LOG = Logger.getLogger(AccountGlobalDetail.class); private String chartOfAccountsCode; private String accountNumber; // jkeller: made these transient to prevent post processor serialization errors transient private Chart chartOfAccounts; transient private Account account; /** * Default constructor. */ public AccountGlobalDetail() { } /** * Returns a map of the keys<propName,value> based on the primary key names of the underlying BO and reflecting into this * object. */ public Map<String, Object> getPrimaryKeys() { try { List<String> keys = SpringContext.getBean(PersistenceStructureService.class).getPrimaryKeys(Account.class); HashMap<String, Object> pks = new HashMap<String, Object>(keys.size()); for (String key : keys) { // attempt to read the property of the current object // this requires that the field names match between the underlying BO object // and this object pks.put(key, ObjectUtils.getPropertyValue(this, key)); } return pks; } catch (Exception ex) { LOG.error("unable to get primary keys for global detail object", ex); } return new HashMap<String, Object>(0); } public AccountGlobalDetail(String chartOfAccountsCode, String accountNumber) { this.chartOfAccountsCode = chartOfAccountsCode; this.accountNumber = accountNumber; } /** * Gets the chartOfAccountsCode attribute. * * @return Returns the chartOfAccountsCode */ public String getChartOfAccountsCode() { return chartOfAccountsCode; } /** * Sets the chartOfAccountsCode attribute. * * @param chartOfAccountsCode The chartOfAccountsCode to set. */ public void setChartOfAccountsCode(String chartOfAccountsCode) { this.chartOfAccountsCode = chartOfAccountsCode; } /** * Gets the accountNumber attribute. * * @return Returns the accountNumber */ public String getAccountNumber() { return accountNumber; } /** * Sets the accountNumber attribute. * * @param accountNumber The accountNumber to set. */ public void setAccountNumber(String accountNumber) { this.accountNumber = accountNumber; } /** * Gets the chartOfAccounts attribute. * * @return Returns the chartOfAccounts */ public Chart getChartOfAccounts() { return chartOfAccounts; } /** * Sets the chartOfAccounts attribute. * * @param chartOfAccounts The chartOfAccounts to set. * @deprecated */ public void setChartOfAccounts(Chart chartOfAccounts) { this.chartOfAccounts = chartOfAccounts; } /** * Gets the account attribute. * * @return Returns the account */ public Account getAccount() { return account; } /** * Sets the account attribute. * * @param account The account to set. * @deprecated */ public void setAccount(Account account) { this.account = account; } /** * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper() */ protected LinkedHashMap toStringMapper_RICE20_REFACTORME() { LinkedHashMap m = new LinkedHashMap(); m.put(KFSPropertyConstants.DOCUMENT_NUMBER, getDocumentNumber()); m.put("chartOfAccountsCode", this.chartOfAccountsCode); m.put("accountNumber", this.accountNumber); return m; } }