1 package net.sf.openrocket.optimization.services;
3 import java.util.ArrayList;
4 import java.util.Collection;
6 import java.util.ServiceLoader;
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;
14 public final class OptimizationServiceHelper {
16 private OptimizationServiceHelper() {
17 // Prevent instantiation
21 * Return the simulation modifiers for an OpenRocketDocument. This queries the
22 * getModifiers() method from all available services and returns a collection of all
25 * @param document the OpenRocketDocument.
26 * @return a collection of all simulation modifiers applicable to the document.
28 public static Collection<SimulationModifier> getSimulationModifiers(OpenRocketDocument document) {
29 List<SimulationModifier> list = new ArrayList<SimulationModifier>();
31 ServiceLoader<SimulationModifierService> loader = ServiceLoader.load(SimulationModifierService.class);
32 for (SimulationModifierService service : loader) {
33 list.addAll(service.getModifiers(document));
42 * Return the optimization parameters for an OpenRocketDocument. This queries the
43 * getParameters() method from all available services and returns a collection of all
46 * @param document the OpenRocketDocument.
47 * @return a collection of all optimization parameters applicable to the document.
49 public static Collection<OptimizableParameter> getOptimizableParameters(OpenRocketDocument document) {
50 List<OptimizableParameter> list = new ArrayList<OptimizableParameter>();
52 ServiceLoader<OptimizableParameterService> loader = ServiceLoader.load(OptimizableParameterService.class);
53 for (OptimizableParameterService service : loader) {
54 list.addAll(service.getParameters(document));
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));