Changed DatabaseMotorFinder to have a little template pattern in it to make implementing DatabaseMotorFinderWithMissingMotors much easier.
This commit is contained in:
parent
512a82f4c1
commit
e2e76e823f
@ -16,6 +16,27 @@ import net.sf.openrocket.startup.Application;
|
|||||||
*/
|
*/
|
||||||
public class DatabaseMotorFinder implements MotorFinder {
|
public class DatabaseMotorFinder implements MotorFinder {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do something when a missing motor is found.
|
||||||
|
*
|
||||||
|
* This implementation adds a Warning.MissingMotor to the warning set and returns null.
|
||||||
|
*
|
||||||
|
* Override this function to change the behavior.
|
||||||
|
*
|
||||||
|
* @return The Motor which will be put in the Rocket.
|
||||||
|
*/
|
||||||
|
protected Motor handleMissingMotor(Type type, String manufacturer, String designation, double diameter, double length, String digest, WarningSet warnings) {
|
||||||
|
Warning.MissingMotor mmw = new Warning.MissingMotor();
|
||||||
|
mmw.setDesignation(designation);
|
||||||
|
mmw.setDigest(digest);
|
||||||
|
mmw.setDiameter(diameter);
|
||||||
|
mmw.setLength(length);
|
||||||
|
mmw.setManufacturer(manufacturer);
|
||||||
|
mmw.setType(type);
|
||||||
|
warnings.add(mmw);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Motor findMotor(Type type, String manufacturer, String designation, double diameter, double length, String digest, WarningSet warnings) {
|
public Motor findMotor(Type type, String manufacturer, String designation, double diameter, double length, String digest, WarningSet warnings) {
|
||||||
|
|
||||||
@ -28,15 +49,7 @@ public class DatabaseMotorFinder implements MotorFinder {
|
|||||||
|
|
||||||
// No motors
|
// No motors
|
||||||
if (motors.size() == 0) {
|
if (motors.size() == 0) {
|
||||||
Warning.MissingMotor mmw = new Warning.MissingMotor();
|
return handleMissingMotor(type, manufacturer, designation, diameter, length, digest, warnings);
|
||||||
mmw.setDesignation(designation);
|
|
||||||
mmw.setDigest(digest);
|
|
||||||
mmw.setDiameter(diameter);
|
|
||||||
mmw.setLength(length);
|
|
||||||
mmw.setManufacturer(manufacturer);
|
|
||||||
mmw.setType(type);
|
|
||||||
warnings.add(mmw);
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// One motor
|
// One motor
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package net.sf.openrocket.file;
|
||||||
|
|
||||||
|
import net.sf.openrocket.aerodynamics.WarningSet;
|
||||||
|
import net.sf.openrocket.motor.Motor;
|
||||||
|
import net.sf.openrocket.motor.Motor.Type;
|
||||||
|
import net.sf.openrocket.motor.ThrustCurveMotorPlaceholder;
|
||||||
|
|
||||||
|
public class DatabaseMotorFinderWithMissingMotors extends DatabaseMotorFinder
|
||||||
|
implements MotorFinder {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This implementation returns a ThrustCurveMotorPlaceholder.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected Motor handleMissingMotor(Type type, String manufacturer, String designation, double diameter, double length, String digest, WarningSet warnings) {
|
||||||
|
Motor motor = new ThrustCurveMotorPlaceholder(type,
|
||||||
|
manufacturer,
|
||||||
|
designation,
|
||||||
|
diameter,
|
||||||
|
length,
|
||||||
|
digest,
|
||||||
|
/* delay */ Double.NaN,
|
||||||
|
/*launchMass*/ Double.NaN,
|
||||||
|
/*emptyMass*/ Double.NaN);
|
||||||
|
return motor;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user