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    }