Source code: com/arranger/jarl/base/BaseTimedJarlObject.java
1 package com.arranger.jarl.base;
2
3 import com.arranger.jarl.util.JarlInfoUtil;
4 import com.arranger.jarl.util.ObjectUtil;
5
6 /**
7 * BaseTimedJarlObject created on Mar 21, 2003
8 */
9 public abstract class BaseTimedJarlObject extends BaseJarlObject implements ITimedJarlObject {
10
11 protected Time m_startTime;
12 protected Time m_endTime;
13 protected Time m_totalTime;
14
15 /**
16 * @return get start time
17 */
18 public Time getStartTime() {
19 return m_startTime;
20 }
21
22 /**
23 * @return get end time
24 */
25 public Time getEndTime() {
26 return m_endTime;
27 }
28
29 /**
30 * @param time to start
31 */
32 public void setStartTime(Time time) {
33 m_startTime = time;
34 m_totalTime = null;
35 }
36
37 /**
38 * @param time to end
39 */
40 public void setEndTime(Time time) {
41 m_endTime = time;
42 m_totalTime = null;
43 }
44
45 /**
46 * @return {@link #getEndTime} - {@link #getStartTime}
47 */
48 public Time getTotalTime() {
49 if (m_totalTime == null) {
50 m_totalTime = new Time(getEndTime().getFrame() - getStartTime().getFrame());
51 }
52 return m_totalTime;
53 }
54
55 protected void initAttributes(IContext context) {
56 super.initAttributes(context);
57 ObjectUtil.initializeField("startTime", m_configElement, this, ObjectUtil.TIME_CONVERSION);
58 ObjectUtil.initializeField("endTime", m_configElement, this, ObjectUtil.TIME_CONVERSION);
59 }
60
61 protected void addJarlObjectInfo(IJarlObjectInfo jarlObjectInfo) {
62 super.addJarlObjectInfo(jarlObjectInfo);
63 populateInfo(jarlObjectInfo, "startTime", "StartTime", JarlInfoUtil.TIME_DISPLAY);
64 populateInfo(jarlObjectInfo, "endTime", "EndTime", JarlInfoUtil.TIME_DISPLAY);
65 }
66
67 protected void checkTime(Time time) {
68 if (getStartTime().isGreater(time) ||
69 getEndTime().isLess(time)) {
70 throw new IllegalStateException("Illegal time check: [currentTime, startTime, endTime]: [" +
71 time.toString() + ", " +
72 getStartTime().toString() + ", " +
73 getEndTime().toString() + "]");
74 }
75 }
76 }