lose embedded source jars from upstream branch
[debian/openrocket] / core / src / net / sf / openrocket / optimization / services / OptimizationServiceHelper.java
1 package net.sf.openrocket.optimization.services;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.List;
6 import java.util.ServiceLoader;
7
8 import net.sf.openrocket.document.OpenRocketDocument;
9 import net.sf.openrocket.optimization.rocketoptimization.OptimizableParameter;
10 import net.sf.openrocket.optimization.rocketoptimization.SimulationModifier;
11 import net.sf.openrocket.rocketcomponent.Rocket;
12 import net.sf.openrocket.util.TestRockets;
13
14 public final class OptimizationServiceHelper {
15         
16         private OptimizationServiceHelper() {
17                 // Prevent instantiation
18         }
19         
20         /**
21          * Return the simulation modifiers for an OpenRocketDocument.  This queries the
22          * getModifiers() method from all available services and returns a collection of all
23          * the modifiers.
24          * 
25          * @param document      the OpenRocketDocument.
26          * @return                      a collection of all simulation modifiers applicable to the document.
27          */
28         public static Collection<SimulationModifier> getSimulationModifiers(OpenRocketDocument document) {
29                 List<SimulationModifier> list = new ArrayList<SimulationModifier>();
30                 
31                 ServiceLoader<SimulationModifierService> loader = ServiceLoader.load(SimulationModifierService.class);
32                 for (SimulationModifierService service : loader) {
33                         list.addAll(service.getModifiers(document));
34                 }
35                 
36                 return list;
37         }
38         
39         
40
41         /**
42          * Return the optimization parameters for an OpenRocketDocument.  This queries the
43          * getParameters() method from all available services and returns a collection of all
44          * the modifiers.
45          * 
46          * @param document      the OpenRocketDocument.
47          * @return                      a collection of all optimization parameters applicable to the document.
48          */
49         public static Collection<OptimizableParameter> getOptimizableParameters(OpenRocketDocument document) {
50                 List<OptimizableParameter> list = new ArrayList<OptimizableParameter>();
51                 
52                 ServiceLoader<OptimizableParameterService> loader = ServiceLoader.load(OptimizableParameterService.class);
53                 for (OptimizableParameterService service : loader) {
54                         list.addAll(service.getParameters(document));
55                 }
56                 
57                 return list;
58         }
59         
60         
61         public static void main(String[] args) {
62                 Rocket r = TestRockets.makeBigBlue();
63                 OpenRocketDocument document = new OpenRocketDocument(r);
64                 System.out.println("Simulation modifiers: " + getSimulationModifiers(document));
65                 System.out.println("Optimization parameters: " + getOptimizableParameters(document));
66         }
67 }