1 /**
2 * Copyright 2004-2013 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.opensource.org/licenses/ecl2.php
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.kuali.hr.time.task.service;
17
18
19 import org.kuali.hr.time.task.Task;
20 import org.springframework.cache.annotation.CacheEvict;
21 import org.springframework.cache.annotation.Cacheable;
22
23 import java.sql.Date;
24 import java.util.List;
25
26 public interface TaskService {
27 /**
28 * Fetch Task of a particular id
29 * @param tkTaskId
30 * @return
31 */
32 @Cacheable(value= Task.CACHE_NAME, key="'tkTaskId=' + #p0")
33 public Task getTask(String tkTaskId);
34 /**
35 * Fetch Task of a particular date
36 * @param task
37 * @param asOfDate
38 * @return
39 */
40 @Cacheable(value= Task.CACHE_NAME, key="'task=' + #p0 + '|' + 'asOfDate=' + #p1")
41 public Task getTask(Long task, Date asOfDate);
42 /**
43 * Save a given Task
44 * @param task
45 */
46 @CacheEvict(value={Task.CACHE_NAME}, allEntries = true)
47 public void saveTask(Task task);
48 /**
49 * Save a List of Tasks
50 * @param tasks
51 */
52 @CacheEvict(value={Task.CACHE_NAME}, allEntries = true)
53 public void saveTasks(List<Task> tasks);
54
55 public Task getMaxTask();
56
57 List<Task> getTasks(String task, String description, String workArea, Date fromEffdt, Date toEffdt);
58
59 /**
60 * get the count of Tasks by given task
61 * @param task
62 * @return int
63 */
64 public int getTaskCount(Long task);
65 }