001    /**
002     * Copyright 2004-2013 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.hr.time.roles.dao;
017    
018    import java.sql.Date;
019    import java.util.List;
020    
021    import org.kuali.hr.time.roles.TkRole;
022    
023    public interface TkRoleDao {
024    
025            /**
026             * Returns a list of roles matching the specified criteria. Nulls are valid
027             * as parameters, see parameter comments.
028             *
029         * @param principalId (optional - null is allowed)
030         * @param asOfDate The effective date (required)
031         * @param roleName (optional - null is allowed)
032         * @param workArea (optional - null is allowed)
033         * @param department (optional - null is allowed)
034         * @param chart (optional - null is allowed)
035         * @return A List<TkRole> of roles matching the specified parameters.
036             */
037            public List<TkRole> findRoles(String principalId, Date asOfDate, String roleName, Long workArea, String department, String chart);
038            /**
039             * 
040             * @param positionNumber
041             * @param asOfDate
042             * @param roleName
043             * @param workArea
044             * @param department
045             * @param chart
046             * @return
047             */
048            public List<TkRole> findPositionRoles(String positionNumber, Date asOfDate, String roleName, Long workArea, String department, String chart);
049            /**
050             * Returns a list of inactive roles matching the specified criteria. Nulls are valid
051             * as parameters, see parameter comments.
052             *
053             * @param principalId (optional - null is allowed)
054             * @param asOfDate The effective date (required)
055             * @param roleName (optional - null is allowed)
056             * @param workArea (optional - null is allowed)
057             * @param department (optional - null is allowed)
058             * @param chart (optional - null is allowed)
059             * @return A List<TkRole> of roles matching the specified parameters.
060             */
061            public List<TkRole> findInActiveRoles(String principalId, Date asOfDate, String roleName, Long workArea, String department, String chart);
062    
063            /**
064             * A role to update/save
065             * @param role
066             */
067            public void saveOrUpdateRole(TkRole role);
068    
069            /**
070             * A list of roles to save.
071             * @param roles
072             * @return
073             */
074            public void saveOrUpdateRoles(List<TkRole> roles);
075            
076            public TkRole getRole(String tkRoleId);
077            
078            public TkRole getRolesByPosition(String positionNumber);
079            
080            public TkRole getInactiveRolesByPosition(String positionNumber);
081            
082            public List<TkRole> getPositionRolesForWorkArea(Long workArea, Date asOfDate);
083    
084    }