Added validating and some validation
[sw/motorsim] / src / com / billkuker / rocketry / motorsim / Motor.java
1 package com.billkuker.rocketry.motorsim;\r
2 \r
3 import javax.measure.unit.SI;\r
4 \r
5 import org.jscience.physics.amount.Amount;\r
6 import com.billkuker.rocketry.motorsim.Validating.ValidationException;\r
7 \r
8 public class Motor implements Validating{\r
9         private Chamber chamber;\r
10         private Grain grain;\r
11         private Nozzle nozzle;\r
12         private Fuel fuel;\r
13         private String name;\r
14         \r
15         public void validate() throws ValidationException {\r
16                 if ( chamber.chamberVolume().isLessThan(grain.volume(Amount.valueOf(0, SI.MILLIMETER)))){\r
17                         throw new ValidationException(this, "Fuel does not fit in chamber");\r
18                 }\r
19                 if ( chamber instanceof Validating )\r
20                         ((Validating)chamber).validate();\r
21                 if ( grain instanceof Validating )\r
22                         ((Validating)grain).validate();\r
23                 if ( nozzle instanceof Validating )\r
24                         ((Validating)nozzle).validate();\r
25                 if ( fuel instanceof Validating )\r
26                         ((Validating)fuel).validate();\r
27         }\r
28         \r
29         public Chamber getChamber() {\r
30                 return chamber;\r
31         }\r
32         \r
33         public void setChamber(Chamber chamber) {\r
34                 this.chamber = chamber;\r
35         }\r
36         \r
37         public Grain getGrain() {\r
38                 return grain;\r
39         }\r
40         \r
41         public void setGrain(Grain grain) {\r
42                 this.grain = grain;\r
43         }\r
44         \r
45         public Nozzle getNozzle() {\r
46                 return nozzle;\r
47         }\r
48         \r
49         public void setNozzle(Nozzle nozzle) {\r
50                 this.nozzle = nozzle;\r
51         }\r
52 \r
53         public Fuel getFuel() {\r
54                 return fuel;\r
55         }\r
56 \r
57         public void setFuel(Fuel fuel) {\r
58                 this.fuel = fuel;\r
59         }\r
60 \r
61         public String getName() {\r
62                 return name;\r
63         }\r
64 \r
65         public void setName(String name) {\r
66                 this.name = name;\r
67         }\r
68 }\r