/*
* 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;
}
}