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 */
016package org.kuali.ole.sys.service.impl;
017
018import java.util.List;
019
020import org.kuali.ole.sys.dataaccess.AccountingLineDao;
021import org.kuali.ole.sys.service.AccountingLineService;
022import org.kuali.ole.sys.service.NonTransactional;
023
024/**
025 * This class is the service implementation for the AccountingLine structure. This has been created with polymorphism in mind so
026 * that this service can be used for performing services for both the Source and Target AccountingLineBase structures. This is the
027 * default, Kuali provided implementation.
028 */
029
030@NonTransactional
031public class AccountingLineServiceImpl implements AccountingLineService {
032    // set up logging
033    private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(AccountingLineServiceImpl.class);
034
035    private AccountingLineDao accountingLineDao;
036
037    /**
038     * Default constructor
039     */
040    public AccountingLineServiceImpl() {
041        super();
042    }
043
044    /**
045     * Retrieves an accounting line by its document header id. Will retrieve any object that extends AccountingLineBase (i.e. Source
046     * and Target lines).
047     * 
048     * @param Class The specific child class type to be retrieved.
049     * @param Long
050     */
051    public List getByDocumentHeaderId(Class clazz, String documentHeaderId) {
052        // retrieve the line
053        return getAccountingLineDao().findByDocumentHeaderId(clazz, documentHeaderId);
054    }
055
056
057    // needed for Spring injection
058    /**
059     * Sets the data access object
060     * 
061     * @param d
062     */
063    public void setAccountingLineDao(AccountingLineDao d) {
064        this.accountingLineDao = d;
065    }
066
067    /**
068     * Retrieves a data access object
069     */
070    public AccountingLineDao getAccountingLineDao() {
071        return accountingLineDao;
072    }
073}