Added validating and some validation
[sw/motorsim] / src / com / billkuker / rocketry / motorsim / Motor.java
index 68a84acaa5d8bee45ba316fba61c53b139c2cbd5..91c2c1013bfb43b762b1188753ab9777295d5ff3 100644 (file)
@@ -1,10 +1,30 @@
 package com.billkuker.rocketry.motorsim;\r
 \r
-public class Motor {\r
+import javax.measure.unit.SI;\r
+\r
+import org.jscience.physics.amount.Amount;\r
+import com.billkuker.rocketry.motorsim.Validating.ValidationException;\r
+\r
+public class Motor implements Validating{\r
        private Chamber chamber;\r
        private Grain grain;\r
        private Nozzle nozzle;\r
        private Fuel fuel;\r
+       private String name;\r
+       \r
+       public void validate() throws ValidationException {\r
+               if ( chamber.chamberVolume().isLessThan(grain.volume(Amount.valueOf(0, SI.MILLIMETER)))){\r
+                       throw new ValidationException(this, "Fuel does not fit in chamber");\r
+               }\r
+               if ( chamber instanceof Validating )\r
+                       ((Validating)chamber).validate();\r
+               if ( grain instanceof Validating )\r
+                       ((Validating)grain).validate();\r
+               if ( nozzle instanceof Validating )\r
+                       ((Validating)nozzle).validate();\r
+               if ( fuel instanceof Validating )\r
+                       ((Validating)fuel).validate();\r
+       }\r
        \r
        public Chamber getChamber() {\r
                return chamber;\r
@@ -37,4 +57,12 @@ public class Motor {
        public void setFuel(Fuel fuel) {\r
                this.fuel = fuel;\r
        }\r
+\r
+       public String getName() {\r
+               return name;\r
+       }\r
+\r
+       public void setName(String name) {\r
+               this.name = name;\r
+       }\r
 }\r