X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fcom%2Fbillkuker%2Frocketry%2Fmotorsim%2FMotor.java;h=91c2c1013bfb43b762b1188753ab9777295d5ff3;hb=725c3b304a1e6405589e1fb6e84a69c68605b8bd;hp=68a84acaa5d8bee45ba316fba61c53b139c2cbd5;hpb=7b4b14447a44c31481b2311bae2d59893f7a48a4;p=sw%2Fmotorsim diff --git a/src/com/billkuker/rocketry/motorsim/Motor.java b/src/com/billkuker/rocketry/motorsim/Motor.java index 68a84ac..91c2c10 100644 --- a/src/com/billkuker/rocketry/motorsim/Motor.java +++ b/src/com/billkuker/rocketry/motorsim/Motor.java @@ -1,10 +1,30 @@ package com.billkuker.rocketry.motorsim; -public class Motor { +import javax.measure.unit.SI; + +import org.jscience.physics.amount.Amount; +import com.billkuker.rocketry.motorsim.Validating.ValidationException; + +public class Motor implements Validating{ private Chamber chamber; private Grain grain; private Nozzle nozzle; private Fuel fuel; + private String name; + + public void validate() throws ValidationException { + if ( chamber.chamberVolume().isLessThan(grain.volume(Amount.valueOf(0, SI.MILLIMETER)))){ + throw new ValidationException(this, "Fuel does not fit in chamber"); + } + if ( chamber instanceof Validating ) + ((Validating)chamber).validate(); + if ( grain instanceof Validating ) + ((Validating)grain).validate(); + if ( nozzle instanceof Validating ) + ((Validating)nozzle).validate(); + if ( fuel instanceof Validating ) + ((Validating)fuel).validate(); + } public Chamber getChamber() { return chamber; @@ -37,4 +57,12 @@ public class Motor { public void setFuel(Fuel fuel) { this.fuel = fuel; } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } }