package com.thingtrack.konekti.dao.api;
import com.thingtrack.konekti.dao.template.Dao;
import com.thingtrack.konekti.domain.Calendar;
/**
* Calendar Data Access Layer
* <p>
* @author Thingtrack S.L.
*
*/
public interface CalendarDao extends Dao<Calendar, Integer> {
/**
* Obtains an {@link Calendar} object found by its {@code name}
*
* @param name the unique name of the calendar, not null
* @return {@link Calendar} found byt its name
* @throws Exception if the {@code name} not belongs to any stored {@code Calendar}
*/
public Calendar getByName(String name) throws Exception;
/**
* Obtains a new {@link Calendar} cloned by the other passed as parameter
*
* @param calendar the {@code Calendar} to be copied, not null
* @return A cloned {@code Calendar}
* @throws Exception if the passed {@code Calendar} is null
*/
public Calendar copy(Calendar calendar) throws Exception;
}