001/* 002 * Copyright 2007 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017package org.kuali.ole.coa.businessobject; 018 019import java.util.HashMap; 020import java.util.LinkedHashMap; 021import java.util.List; 022import java.util.Map; 023 024import org.apache.log4j.Logger; 025import org.kuali.ole.sys.OLEPropertyConstants; 026import org.kuali.ole.sys.context.SpringContext; 027import org.kuali.rice.krad.bo.GlobalBusinessObjectDetailBase; 028import org.kuali.rice.krad.service.PersistenceStructureService; 029import org.kuali.rice.krad.util.ObjectUtils; 030 031/** 032 * Business Object representing the account change details entity 033 */ 034public class AccountGlobalDetail extends GlobalBusinessObjectDetailBase { 035 036 private static final long serialVersionUID = -6329389744704772474L; 037 private static final Logger LOG = Logger.getLogger(AccountGlobalDetail.class); 038 039 private String chartOfAccountsCode; 040 private String accountNumber; 041 042 // jkeller: made these transient to prevent post processor serialization errors 043 transient private Chart chartOfAccounts; 044 transient private Account account; 045 046 /** 047 * Default constructor. 048 */ 049 public AccountGlobalDetail() { 050 051 } 052 053 /** 054 * Returns a map of the keys<propName,value> based on the primary key names of the underlying BO and reflecting into this 055 * object. 056 */ 057 public Map<String, Object> getPrimaryKeys() { 058 try { 059 List<String> keys = SpringContext.getBean(PersistenceStructureService.class).getPrimaryKeys(Account.class); 060 HashMap<String, Object> pks = new HashMap<String, Object>(keys.size()); 061 for (String key : keys) { 062 // attempt to read the property of the current object 063 // this requires that the field names match between the underlying BO object 064 // and this object 065 pks.put(key, ObjectUtils.getPropertyValue(this, key)); 066 } 067 return pks; 068 } 069 catch (Exception ex) { 070 LOG.error("unable to get primary keys for global detail object", ex); 071 } 072 return new HashMap<String, Object>(0); 073 } 074 075 public AccountGlobalDetail(String chartOfAccountsCode, String accountNumber) { 076 this.chartOfAccountsCode = chartOfAccountsCode; 077 this.accountNumber = accountNumber; 078 } 079 080 /** 081 * Gets the chartOfAccountsCode attribute. 082 * 083 * @return Returns the chartOfAccountsCode 084 */ 085 public String getChartOfAccountsCode() { 086 return chartOfAccountsCode; 087 } 088 089 /** 090 * Sets the chartOfAccountsCode attribute. 091 * 092 * @param chartOfAccountsCode The chartOfAccountsCode to set. 093 */ 094 public void setChartOfAccountsCode(String chartOfAccountsCode) { 095 this.chartOfAccountsCode = chartOfAccountsCode; 096 } 097 098 099 /** 100 * Gets the accountNumber attribute. 101 * 102 * @return Returns the accountNumber 103 */ 104 public String getAccountNumber() { 105 return accountNumber; 106 } 107 108 /** 109 * Sets the accountNumber attribute. 110 * 111 * @param accountNumber The accountNumber to set. 112 */ 113 public void setAccountNumber(String accountNumber) { 114 this.accountNumber = accountNumber; 115 } 116 117 /** 118 * Gets the chartOfAccounts attribute. 119 * 120 * @return Returns the chartOfAccounts 121 */ 122 public Chart getChartOfAccounts() { 123 return chartOfAccounts; 124 } 125 126 /** 127 * Sets the chartOfAccounts attribute. 128 * 129 * @param chartOfAccounts The chartOfAccounts to set. 130 * @deprecated 131 */ 132 public void setChartOfAccounts(Chart chartOfAccounts) { 133 this.chartOfAccounts = chartOfAccounts; 134 } 135 136 /** 137 * Gets the account attribute. 138 * 139 * @return Returns the account 140 */ 141 public Account getAccount() { 142 return account; 143 } 144 145 /** 146 * Sets the account attribute. 147 * 148 * @param account The account to set. 149 * @deprecated 150 */ 151 public void setAccount(Account account) { 152 this.account = account; 153 } 154 155 /** 156 * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper() 157 */ 158 protected LinkedHashMap toStringMapper_RICE20_REFACTORME() { 159 LinkedHashMap m = new LinkedHashMap(); 160 m.put(OLEPropertyConstants.DOCUMENT_NUMBER, getDocumentNumber()); 161 m.put("chartOfAccountsCode", this.chartOfAccountsCode); 162 m.put("accountNumber", this.accountNumber); 163 return m; 164 } 165}