001 /*
002 * Copyright 2011 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 package org.kuali.kfs.gl.businessobject;
017
018 import org.kuali.kfs.coa.businessobject.Account;
019
020 /**
021 * An interface that declares the methods that a Business Object must implement, if it should have its flexible offset account updated by
022 * the FlexibleOffsetAccountService.
023 * @see org.kuali.kfs.sys.service.FlexibleOffsetAccountService
024 */
025 public interface FlexibleAccountUpdateable {
026 /**
027 * Returns the university fiscal year of the business object to update
028 * @return a valid university fiscal year
029 */
030 public abstract Integer getUniversityFiscalYear();
031 /**
032 * Returns the chart of accounts code of the business object to update
033 * @return a valid chart of accounts code
034 */
035 public abstract String getChartOfAccountsCode();
036 /**
037 * Returns the account number of the business object to update
038 * @return a valid account number
039 */
040 public abstract String getAccountNumber();
041 /**
042 * Returns the balance type code of the business object to update
043 * @return a valid balance type code
044 */
045 public abstract String getFinancialBalanceTypeCode();
046 /**
047 * Returns the document type code of the business object to update
048 * @return a valid document code
049 */
050 public abstract String getFinancialDocumentTypeCode();
051
052 /**
053 * Returns the object code of the business object to update
054 * @return a valid object code
055 */
056 public abstract String getFinancialObjectCode();
057
058 /**
059 * Sets the business object's account attribute
060 * @param a an account business object to set
061 */
062 public abstract void setAccount(Account a);
063 /**
064 * Sets the chart of accounts code of the business object
065 * @param chartCode the chart code to set
066 */
067 public abstract void setChartOfAccountsCode(String chartCode);
068 /**
069 * Sets the account number of the business object
070 * @param accountNumber the account number to set
071 */
072 public abstract void setAccountNumber(String accountNumber);
073 /**
074 * Sets the sub-account number of the business object
075 * @param subAccountNumber the sub account number to set
076 */
077 public abstract void setSubAccountNumber(String subAccountNumber);
078 /**
079 * Sets the financial sub-object code of the business object
080 * @param financialSubObjectCode the financial sub-object code to set
081 */
082 public abstract void setFinancialSubObjectCode(String financialSubObjectCode);
083 }