create changelog entry
[debian/openrocket] / android / src / net / sf / openrocket / android / rocket / MissingMotorHelpers.java
1 package net.sf.openrocket.android.rocket;\r
2 \r
3 import java.util.HashSet;\r
4 import java.util.Iterator;\r
5 import java.util.Set;\r
6 \r
7 import net.sf.openrocket.aerodynamics.WarningSet;\r
8 import net.sf.openrocket.android.util.AndroidLogWrapper;\r
9 import net.sf.openrocket.file.DatabaseMotorFinder;\r
10 import net.sf.openrocket.motor.Motor;\r
11 import net.sf.openrocket.motor.ThrustCurveMotorPlaceholder;\r
12 import net.sf.openrocket.rocketcomponent.Configuration;\r
13 import net.sf.openrocket.rocketcomponent.MotorMount;\r
14 import net.sf.openrocket.rocketcomponent.Rocket;\r
15 \r
16 public abstract class MissingMotorHelpers {\r
17 \r
18         public static Set<ThrustCurveMotorPlaceholder> findMissingMotors( Rocket rocket ) {\r
19 \r
20                 Set<ThrustCurveMotorPlaceholder> missingMotors = new HashSet<ThrustCurveMotorPlaceholder>();\r
21                 Configuration config = rocket.getDefaultConfiguration();\r
22                 for( String configID : rocket.getMotorConfigurationIDs() ) {\r
23                         config.setMotorConfigurationID(configID);\r
24                         Iterator<MotorMount> mmts = config.motorIterator();\r
25                         while ( mmts.hasNext() ) {\r
26                                 MotorMount mmt = mmts.next();\r
27                                 Motor m = mmt.getMotor(configID);\r
28                                 if ( m instanceof ThrustCurveMotorPlaceholder ) {\r
29                                         missingMotors.add( (ThrustCurveMotorPlaceholder) m );\r
30                                 }\r
31                         }\r
32 \r
33                 }\r
34 \r
35                 for ( ThrustCurveMotorPlaceholder m : missingMotors ) {\r
36                         AndroidLogWrapper.d(MissingMotorHelpers.class, "Missing Motor: {}", m);\r
37                 }\r
38 \r
39                 return missingMotors;\r
40         }\r
41 \r
42         public static void updateMissingMotors( Rocket rocket, WarningSet warnings ) {\r
43         \r
44                 DatabaseMotorFinder finder = new DatabaseMotorFinder();\r
45                 \r
46                 Configuration config = rocket.getDefaultConfiguration();\r
47                 for( String configID : rocket.getMotorConfigurationIDs() ) {\r
48                         config.setMotorConfigurationID(configID);\r
49                         Iterator<MotorMount> mmts = config.motorIterator();\r
50                         while ( mmts.hasNext() ) {\r
51                                 MotorMount mmt = mmts.next();\r
52                                 Motor m = mmt.getMotor(configID);\r
53                                 if ( m instanceof ThrustCurveMotorPlaceholder ) {\r
54                                         \r
55                                         ThrustCurveMotorPlaceholder placeholder = (ThrustCurveMotorPlaceholder)m;\r
56                                         Motor newMotor = finder.findMotor(placeholder.getMotorType(),\r
57                                                         placeholder.getManufacturer(),\r
58                                                         placeholder.getDesignation(),\r
59                                                         placeholder.getDiameter(),\r
60                                                         placeholder.getLength(),\r
61                                                         placeholder.getDigest(),\r
62                                                         warnings);\r
63 \r
64                                         if ( newMotor != null ) {\r
65                                                 // one is now here so replace it\r
66                                                 mmt.setMotor(configID, newMotor);\r
67                                         }\r
68                                 }\r
69                         }\r
70 \r
71                 }\r
72 \r
73                 \r
74         }\r
75         \r
76 }\r