/*
* 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.service;
import java.util.List;
import org.kuali.kfs.coa.businessobject.ObjectType;
/**
*
* This service interface defines methods necessary for retrieving fully populated ObjectType business objects from the database
* that are necessary for transaction processing in the application. It also defines methods to retrieve specific object type codes
*/
public interface ObjectTypeService {
/**
* Retrieve an ObjectType by code/id.
*
* @param objectTypeCode
* @return an ObjectType that matches this code
*/
public ObjectType getByPrimaryKey(String objectTypeCode);
/**
* Returns a list of basic expense objects from options table for a given university fiscal year
*
* @param universityFiscalYear
* @return a list of basic expense object types based on the fiscal year
*/
public List<String> getBasicExpenseObjectTypes(Integer universityFiscalYear);
/**
*
* Returns a list of all expense objects from options table for a given university fiscal year
* @param universityFiscalYear
* @return a list of all expense object types based on the fiscal year
*/
public List<String> getExpenseObjectTypes(Integer universityFiscalYear);
/**
* Returns the expense transfer object type from options table for a given university fiscal year
*
* @param universityFiscalYear
* @return the expense transfer object type associated with this fiscal year
*/
public String getExpenseTransferObjectType(Integer universityFiscalYear);
/**
* Returns the asset object type from options table for a given university fiscal year
*
* @param universityFiscalYear
* @return the asset object type that is associated with this fiscal year
*/
public String getAssetObjectType(Integer universityFiscalYear);
/**
* Returns a list of basic income objects from options table for a given university fiscal year
*
* @param universityFiscalYear
* @return a list of basic income object types associated with this fiscal year
*/
public List<String> getBasicIncomeObjectTypes(Integer universityFiscalYear);
/**
* Returns the income transfer object type from options table for a given university fiscal year
*
* @param universityFiscalYear
* @return the income transfer object type associated with this fiscal year
*/
public String getIncomeTransferObjectType(Integer universityFiscalYear);
/**
* Returns a list of basic expense objects from options table for the current university fiscal year
*
* @return list of current fiscal year basic expense object types
*/
public List<String> getCurrentYearBasicExpenseObjectTypes();
/**
* Returns a list of basic expense objects from options table for the current university fiscal year. Normally, this method
* returns the same values as getCurrentYearBasicExpenseObjectTypes, but also has the expenseTransferObjectType value.
*
* @return current fiscal year expense object types
*/
public List<String> getCurrentYearExpenseObjectTypes();
/**
* Returns the expense transfer object type from options table for the current university fiscal year
*
* @return current fiscal year expense transfer object type
*/
public String getCurrentYearExpenseTransferObjectType();
/**
* Returns the asset object type from options table for the current university fiscal year
*
* @return current fiscal year asset object type
*/
public String getCurrentYearAssetObjectType();
/**
* Returns a list of basic income objects from options table for the current university fiscal year
*
* @return list of current year basic income object types associated with this fiscal year
*/
public List<String> getCurrentYearBasicIncomeObjectTypes();
/**
* Returns the income transfer object type from options table for the current university fiscal year
*
* @return current fiscal year income transfer object type
*/
public String getCurrentYearIncomeTransferObjectType();
/**
* Returns a list of the object types that the nominal balance selector uses to determine if it should process a balance or not
*
* @param fiscalYear
* @return list of nominal activity closing allowed object types associated with this fiscal year
*/
public List<String> getNominalActivityClosingAllowedObjectTypes(Integer fiscalYear);
/**
* Returns a list of object types that the general balance forwards selector uses to determine if it should process a balance
*
* @param fiscalYear
* @return list of general forward balance object types associated with this fiscal year
*/
public List<String> getGeneralForwardBalanceObjectTypes(Integer fiscalYear);
/**
* Returns a list of object types that the cumulative balance forwards selector uses to determine if it should process a balance
*
* @param fiscalYear
* @return list of cumulative forward balance object types associated with this fiscal year
*/
public List<String> getCumulativeForwardBalanceObjectTypes(Integer fiscalYear);
/**
* returns a list of expense object types that are used in determining whether the
* amount on the accounting line is negated for using in payments.
*
* @return list of expense object types
*/
public List<String> getExpenseAndTransferObjectTypesForPayments();
/**
* returns a list of income object types that are used in determining whether the
* amount on the accounting line is negated for using in payments.
*
* @return list of income object types
*/
public List<String> getIncomeAndTransferObjectTypesForPayments();
}