View Javadoc

1   /*
2    * @(#)Treatment.java Aug 18, 2003
3    * 
4    * Copyright (c) 2003 Delft University of Technology Jaffalaan 5, 2628 BX Delft,
5    * the Netherlands All rights reserved.
6    * 
7    * This software is proprietary information of Delft University of Technology
8    * The code is published under the General Public License
9    */
10  package nl.tudelft.simulation.dsol.experiment;
11  
12  import java.util.Calendar;
13  import java.util.Properties;
14  
15  import nl.tudelft.simulation.event.EventProducer;
16  
17  /***
18   * The treatment is comprises the specification of input data, the runControl
19   * and the specification of output data. (Sol:1982, Oeren&Zeigler:1979) <br>
20   * (c) copyright 2003 <a href="http://www.simulation.tudelft.nl">Delft
21   * University of Technology </a>, the Netherlands. <br>
22   * See for project information <a href="http://www.simulation.tudelft.nl">
23   * www.simulation.tudelft.nl </a> <br>
24   * License of use: <a href="http://www.gnu.org/copyleft/gpl.html">General Public
25   * License (GPL) </a>, no warranty <br>
26   * 
27   * @version 2.0 21.09.2003 <br>
28   * @author <a href="http://www.tbm.tudelft.nl/webstaf/peterja/index.htm">Peter
29   *         Jacobs </a>, <a
30   *         href="http://www.tbm.tudelft.nl/webstaf/alexandv/index.htm">Alexander
31   *         Verbraeck </a>
32   */
33  public class Treatment extends EventProducer
34  {
35  
36  	/***
37  	 * experiment reflects the experiment
38  	 * 
39  	 * @uml.property name="experiment"
40  	 */
41  	private Experiment experiment;
42  
43  	/***
44  	 * runControl reflects the runControl
45  	 * 
46  	 * @uml.property name="runControl"
47  	 */
48  	private RunControl runControl;
49  
50  	/***
51  	 * startTime of the treatment
52  	 * 
53  	 * @uml.property name="startTime"
54  	 */
55  	private long startTime = 0L;
56  
57  	/***
58  	 * timeUnit reflects the timeUnit
59  	 * 
60  	 * @uml.property name="timeUnit"
61  	 */
62  	private TimeUnitInterface timeUnit = TimeUnitInterface.UNIT;
63  
64  	/***
65  	 * the number of the treatment
66  	 * 
67  	 * @uml.property name="number"
68  	 */
69  	private int number = 0;
70  
71  	/***
72  	 * the properties of this treatment
73  	 * 
74  	 * @uml.property name="properties"
75  	 */
76  	private Properties properties = new Properties();
77  
78  
79  	/***
80  	 * contructs a Treatment
81  	 * 
82  	 * @param experiment reflects the experiment
83  	 * @param number the number of this treatment
84  	 */
85  	public Treatment(final Experiment experiment, final int number)
86  	{
87  		super();
88  		this.experiment = experiment;
89  		this.number = number;
90  	}
91  
92  	/***
93  	 * returns the number of this replication
94  	 * 
95  	 * @return int the number
96  	 * 
97  	 * @uml.property name="number"
98  	 */
99  	public int getNumber()
100 	{
101 		return this.number;
102 	}
103 
104 	/***
105 	 * returns the experiment
106 	 * 
107 	 * @return Experiment the experiment
108 	 * 
109 	 * @uml.property name="experiment"
110 	 */
111 	public Experiment getExperiment()
112 	{
113 		return this.experiment;
114 	}
115 
116 	/***
117 	 * returns the properties for this treatment
118 	 * 
119 	 * @return Properties
120 	 * 
121 	 * @uml.property name="properties"
122 	 */
123 	public Properties getProperties()
124 	{
125 		return this.properties;
126 	}
127 
128 	/***
129 	 * returns the RunControl
130 	 * 
131 	 * @return RunControl the runControl
132 	 * 
133 	 * @uml.property name="runControl"
134 	 */
135 	public RunControl getRunControl()
136 	{
137 		return this.runControl;
138 	}
139 
140 	/***
141 	 * returns the startTime
142 	 * 
143 	 * @return long the startTime
144 	 * 
145 	 * @uml.property name="startTime"
146 	 */
147 	public long getStartTime()
148 	{
149 		return this.startTime;
150 	}
151 
152 	/***
153 	 * returns the timeUnit
154 	 * 
155 	 * @return timeUnit
156 	 * 
157 	 * @uml.property name="timeUnit"
158 	 */
159 	public TimeUnitInterface getTimeUnit()
160 	{
161 		return this.timeUnit;
162 	}
163 
164 	/***
165 	 * sets the properties
166 	 * 
167 	 * @param properties the properties
168 	 * 
169 	 * @uml.property name="properties"
170 	 */
171 	public void setProperties(final Properties properties)
172 	{
173 		this.properties = properties;
174 	}
175 
176 	/***
177 	 * sets the RunControl
178 	 * 
179 	 * @param runControl the control.
180 	 * 
181 	 * @uml.property name="runControl"
182 	 */
183 	public void setRunControl(final RunControl runControl)
184 	{
185 		this.runControl = runControl;
186 	}
187 
188 	/***
189 	 * sets the startTime of the treatment
190 	 * 
191 	 * @param startTime reflects the startTime
192 	 * 
193 	 * @uml.property name="startTime"
194 	 */
195 	public void setStartTime(final long startTime)
196 	{
197 		this.startTime = startTime;
198 	}
199 
200 	/***
201 	 * sets the timeUnit of the treatment
202 	 * 
203 	 * @param timeUnit is the timeunit
204 	 * 
205 	 * @uml.property name="timeUnit"
206 	 */
207 	public void setTimeUnit(final TimeUnitInterface timeUnit)
208 	{
209 		this.timeUnit = timeUnit;
210 	}
211 
212 	/***
213 	 * @see java.lang.Object#toString()
214 	 */
215 	public String toString()
216 	{
217 		Calendar calendar = Calendar.getInstance();
218 		calendar.setTimeInMillis(this.getStartTime());
219 
220 		String result = "[" + super.toString() + " ; "
221 				+ calendar.getTime().toString() + " ; " + this.getTimeUnit()
222 				+ " ; runcontrol=" + this.getRunControl().toString() + "";
223 		return result;
224 	}
225 }