/*******************************************************************************
* Copyright (c) 2012 Dmitry Tikhomirov.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* Dmitry Tikhomirov - initial API and implementation
******************************************************************************/
package org.opensheet.server.dao;
import org.opensheet.client.exceptions.ParentTimelineIsNullException;
import org.opensheet.client.exceptions.ParentTimelineTooSmallException;
import org.opensheet.shared.model.Assignment;
import org.opensheet.shared.model.AssignmentDepartmentTimeline;
import org.opensheet.shared.model.AssignmentTimeline;
import org.opensheet.shared.model.AssignmentUserDetail;
import org.opensheet.shared.model.Department;
import org.opensheet.shared.model.User;
public interface TimelineDAO {
public Assignment getAssignmentTimeline(Assignment assignment);
public AssignmentDepartmentTimeline getAssignmentDepartmentTimeline(Assignment assignment, Department department);
public Integer getAssignmentDepartmentTimelineSumByAssignment(Assignment assignment);
public Assignment setAssignmentTimeline(Assignment assignment,AssignmentTimeline assignmentTimeline);
public AssignmentUserDetail getAssignmentUserDetail(Assignment assignment,User user);
public void setAssignmentUserDetail(AssignmentUserDetail assignmentUserDetail);
public void setUserAssignmentTimeline(Assignment assignment,User user,Integer timeline) throws ParentTimelineIsNullException, ParentTimelineTooSmallException;
public void setUserAssignmentRate(Assignment assignment,User user,Integer rate);
public void setUserAssignmentTimelineAndRate(User user,Assignment assignment,Integer timeline, Integer rate);
}