/* * 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.gl.service.impl; import java.util.Arrays; import org.kuali.kfs.coa.service.BalanceTypeService; import org.kuali.kfs.gl.ObjectHelper; import org.kuali.kfs.gl.businessobject.OriginEntryFull; import org.kuali.kfs.sys.context.SpringContext; /** * This class represents an origin entry key */ public class OriginEntryKey { static BalanceTypeService balanceTypService = SpringContext.getBean(BalanceTypeService.class); /* * (non-Javadoc) * * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals(Object obj) { if (!(obj instanceof OriginEntryKey) || null == obj) { return false; } OriginEntryKey key = (OriginEntryKey) obj; return ObjectHelper.isEqual(getAccountNumber(), key.getAccountNumber()) && ObjectHelper.isEqual(getBalanceTypeCode(), key.getBalanceTypeCode()) && ObjectHelper.isEqual(getChartCode(), key.getChartCode()) && ObjectHelper.isEqual(getFinancialSystemDocumentTypeCodeCode(), key.getFinancialSystemDocumentTypeCodeCode()) && ObjectHelper.isEqual(getEntrySequenceNumber(), key.getEntrySequenceNumber()) && ObjectHelper.isEqual(getDocumentNumber(), key.getDocumentNumber()) && ObjectHelper.isEqual(getFinancialObjectCode(), key.getFinancialObjectCode()) && ObjectHelper.isEqual(getFiscalPeriodCode(), key.getFiscalPeriodCode()) && ObjectHelper.isEqual(getFiscalYear(), key.getFiscalYear()) && ObjectHelper.isEqual(getObjectTypeCode(), key.getObjectTypeCode()) && ObjectHelper.isEqual(getSubAccountNumber(), key.getSubAccountNumber()) && ObjectHelper.isEqual(getSubObjectCode(), key.getSubObjectCode()) && ObjectHelper.isEqual(getSystemOriginationCode(), key.getSystemOriginationCode()); } /** * @param entry * @return */ static public OriginEntryKey buildFromOriginEntry(OriginEntryFull entry) { if (null == entry) { return null; } OriginEntryKey key = new OriginEntryKey(); key.setAccountNumber(entry.getAccountNumber()); key.setBalanceTypeCode(entry.getFinancialBalanceTypeCode()); key.setChartCode(entry.getChartOfAccountsCode()); key.setFinancialSystemDocumentTypeCodeCode(entry.getFinancialDocumentTypeCode()); key.setEntrySequenceNumber(entry.getTransactionLedgerEntrySequenceNumber().toString()); key.setDocumentNumber(entry.getDocumentNumber()); key.setFinancialObjectCode(entry.getFinancialObjectCode()); key.setFiscalPeriodCode(entry.getUniversityFiscalPeriodCode()); key.setFiscalYear(entry.getUniversityFiscalYear().toString()); key.setObjectTypeCode(entry.getFinancialObjectTypeCode()); key.setSubAccountNumber(entry.getSubAccountNumber()); key.setSubObjectCode(entry.getFinancialSubObjectCode()); key.setSystemOriginationCode(entry.getFinancialSystemOriginationCode()); return key; } /** * @param entry */ public void setIntoOriginEntry(OriginEntryFull entry) { entry.setAccountNumber(getAccountNumber()); entry.setBalanceType(balanceTypService.getBalanceTypeByCode(getBalanceTypeCode())); entry.setChartOfAccountsCode(getChartCode()); entry.setTransactionLedgerEntrySequenceNumber(new Integer(getEntrySequenceNumber())); entry.setDocumentNumber(getDocumentNumber()); entry.setFinancialObjectCode(getFinancialObjectCode()); entry.setUniversityFiscalPeriodCode(getFiscalPeriodCode()); entry.setUniversityFiscalYear(new Integer(getFiscalYear())); entry.setFinancialObjectTypeCode(getObjectTypeCode()); entry.setSubAccountNumber(getSubAccountNumber()); entry.setFinancialSubObjectCode(getSubObjectCode()); entry.setFinancialSystemOriginationCode(getSystemOriginationCode()); entry.setFinancialDocumentTypeCode(getFinancialSystemDocumentTypeCodeCode()); } /** * @return Returns the accountNumber. */ public String getAccountNumber() { return new String(accountNumber); } /** * @param accountNumber The accountNumber to set. */ public void setAccountNumber(String accountNumber) { if (null != accountNumber) { System.arraycopy(accountNumber.toCharArray(), 0, this.accountNumber, 0, this.accountNumber.length); } else { Arrays.fill(this.accountNumber, (char) 0); } } /** * @return Returns the balanceTypeCode. */ public String getBalanceTypeCode() { return new String(balanceTypeCode); } /** * @param balanceTypeCode The balanceTypeCode to set. */ public void setBalanceTypeCode(String balanceTypeCode) { if (null != balanceTypeCode) { System.arraycopy(balanceTypeCode.toCharArray(), 0, this.balanceTypeCode, 0, this.balanceTypeCode.length); } else { Arrays.fill(this.balanceTypeCode, (char) 0); } } /** * @return Returns the chartCode. */ public String getChartCode() { return new String(chartCode); } /** * @param chartCode The chartCode to set. */ public void setChartCode(String chartCode) { if (null != chartCode) { System.arraycopy(chartCode, 0, this.chartCode, 0, this.chartCode.length); } else { Arrays.fill(this.chartCode, (char) 0); } } /** * @return Returns the financialSystemDocumentTypeCodeCode. */ public String getFinancialSystemDocumentTypeCodeCode() { return new String(financialSystemDocumentTypeCodeCode); } /** * @param financialSystemDocumentTypeCodeCode The financialSystemDocumentTypeCodeCode to set. */ public void setFinancialSystemDocumentTypeCodeCode(String financialSystemDocumentTypeCodeCode) { if (null != financialSystemDocumentTypeCodeCode) { System.arraycopy(financialSystemDocumentTypeCodeCode.toCharArray(), 0, this.financialSystemDocumentTypeCodeCode, 0, this.financialSystemDocumentTypeCodeCode.length); } else { Arrays.fill(this.financialSystemDocumentTypeCodeCode, (char) 0); } } /** * @return Returns the entrySequenceNumber. */ public String getEntrySequenceNumber() { return new String(entrySequenceNumber); } /** * @param entrySequenceNumber The entrySequenceNumber to set. */ public void setEntrySequenceNumber(String entrySequenceNumber) { if (null != entrySequenceNumber) { System.arraycopy(entrySequenceNumber, 0, this.entrySequenceNumber, 0, this.entrySequenceNumber.length); } else { Arrays.fill(this.entrySequenceNumber, (char) 0); } } /** * @return Returns the documentNumber. */ public String getDocumentNumber() { return new String(documentNumber); } /** * @param documentNumber The documentNumber to set. */ public void setDocumentNumber(String documentNumber) { if (null != documentNumber) { System.arraycopy(documentNumber, 0, this.documentNumber, 0, this.documentNumber.length); } else { Arrays.fill(this.documentNumber, (char) 0); } } /** * @return Returns the financialObjectCode. */ public String getFinancialObjectCode() { return new String(financialObjectCode); } /** * @param financialObjectCode The financialObjectCode to set. */ public void setFinancialObjectCode(String financialObjectCode) { if (null != financialObjectCode) { System.arraycopy(financialObjectCode, 0, this.financialObjectCode, 0, this.financialObjectCode.length); } else { Arrays.fill(this.financialObjectCode, (char) 0); } } /** * @return Returns the fiscalPeriodCode. */ public String getFiscalPeriodCode() { return new String(fiscalPeriodCode); } /** * @param fiscalPeriodCode The fiscalPeriodCode to set. */ public void setFiscalPeriodCode(String fiscalPeriodCode) { if (null != fiscalPeriodCode) { System.arraycopy(fiscalPeriodCode, 0, this.fiscalPeriodCode, 0, this.fiscalPeriodCode.length); } else { Arrays.fill(this.fiscalPeriodCode, (char) 0); } } /** * @return Returns the fiscalYear. */ public String getFiscalYear() { return new String(fiscalYear); } /** * @param fiscalYear The fiscalYear to set. */ public void setFiscalYear(String fiscalYear) { if (null != fiscalYear) { System.arraycopy(fiscalYear, 0, this.fiscalYear, 0, this.fiscalYear.length); } else { Arrays.fill(this.fiscalYear, (char) 0); } } /** * @return Returns the objectTypeCode. */ public String getObjectTypeCode() { return new String(objectTypeCode); } /** * @param objectTypeCode The objectTypeCode to set. */ public void setObjectTypeCode(String objectTypeCode) { if (null != objectTypeCode) { System.arraycopy(objectTypeCode, 0, this.objectTypeCode, 0, this.objectTypeCode.length); } else { Arrays.fill(this.objectTypeCode, (char) 0); } } /** * @return Returns the subAccountNumber. */ public String getSubAccountNumber() { return new String(subAccountNumber); } /** * @param subAccountNumber The subAccountNumber to set. */ public void setSubAccountNumber(String subAccountNumber) { if (null != subAccountNumber) { System.arraycopy(subAccountNumber, 0, this.subAccountNumber, 0, this.subAccountNumber.length); } else { Arrays.fill(this.subAccountNumber, (char) 0); } } /** * @return Returns the subObjectCode. */ public String getSubObjectCode() { return new String(subObjectCode); } /** * @param subObjectCode The subObjectCode to set. */ public void setSubObjectCode(String subObjectCode) { if (null != subObjectCode) { System.arraycopy(subObjectCode, 0, this.subObjectCode, 0, this.subObjectCode.length); } else { Arrays.fill(this.subObjectCode, (char) 0); } } /** * @return Returns the systemOriginationCode. */ public String getSystemOriginationCode() { return new String(systemOriginationCode); } /** * @param systemOriginationCode The systemOriginationCode to set. */ public void setSystemOriginationCode(String systemOriginationCode) { if (null != systemOriginationCode) { System.arraycopy(systemOriginationCode.toCharArray(), 0, this.systemOriginationCode, 0, this.systemOriginationCode.length); } else { Arrays.fill(this.systemOriginationCode, (char) 0); } } public OriginEntryKey() { super(); } final private char[] fiscalYear = new char[4]; final private char[] chartCode = new char[2]; final private char[] accountNumber = new char[7]; final private char[] subAccountNumber = new char[5]; final private char[] financialObjectCode = new char[4]; final private char[] subObjectCode = new char[3]; final private char[] balanceTypeCode = new char[2]; final private char[] objectTypeCode = new char[2]; final private char[] fiscalPeriodCode = new char[2]; final private char[] financialSystemDocumentTypeCodeCode = new char[4]; final private char[] systemOriginationCode = new char[2]; final private char[] documentNumber = new char[9]; final private char[] entrySequenceNumber = new char[5]; }