package kr.debop4j.timeperiod; import org.joda.time.DateTime; import org.joda.time.Duration; /** * 시작 시각 ~ 완료시각이라는 시간의 범위를 나타내는 자료구조이고, 기간(Duration) 값은 계산됩니다. * * @author 배성혁 sunghyouk.bae@gmail.com * @since 13. 5. 10. 오후 11:07 */ public interface ITimeRange extends ITimePeriod { /** 시작시각을 설정합니다. */ void setStart(DateTime start); /** 완료시각을 설정합니다. */ void setEnd(DateTime end); /** 시작시각을 기준으로 기간을 설정합니다. */ void setDuration(Duration duration); /** 시작시각을 지정된 시각으로 설정합니다. 시작시각 이전이여야 합니다. */ void expandStartTo(DateTime moment); /** 완료시각을 지정된 시각으로 설정합니다. 완료시각 이후여야 합니다. */ void expandEndTo(DateTime moment); /** 시작시각, 완료시각을 지정된 시각으로 설정합니다. */ void expandTo(DateTime moment); /** 시작시각과 완료시각을 지정된 기간으로 설정합니다. */ void expandTo(ITimePeriod period); /** 시작시각을 지정된 시각으로 설정합니다. 시작시각 이후여야 합니다. */ void shrinkStartTo(DateTime moment); /** 완료시각을 지정된 시각으로 설정합니다. 완료시각 이전이어야 합니다. */ void shrinkEndTo(DateTime moment); /** 시작시각, 완료시각을 지정된 시각으로 설정합니다. */ void shrinkTo(DateTime moment); /** 시작시각과 완료시각을 지정된 기간으로 설정합니다. */ void shrinkTo(ITimePeriod period); }