create changelog entry
[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
12 public final class OptimizationServiceHelper {
13         
14         private OptimizationServiceHelper() {
15                 // Prevent instantiation
16         }
17         
18         /**
19          * Return the simulation modifiers for an OpenRocketDocument.  This queries the
20          * getModifiers() method from all available services and returns a collection of all
21          * the modifiers.
22          * 
23          * @param document      the OpenRocketDocument.
24          * @return                      a collection of all simulation modifiers applicable to the document.
25          */
26         public static Collection<SimulationModifier> getSimulationModifiers(OpenRocketDocument document) {
27                 List<SimulationModifier> list = new ArrayList<SimulationModifier>();
28                 
29                 ServiceLoader<SimulationModifierService> loader = ServiceLoader.load(SimulationModifierService.class);
30                 for (SimulationModifierService service : loader) {
31                         list.addAll(service.getModifiers(document));
32                 }
33                 
34                 return list;
35         }
36         
37         
38         
39         /**
40          * Return the optimization parameters for an OpenRocketDocument.  This queries the
41          * getParameters() method from all available services and returns a collection of all
42          * the modifiers.
43          * 
44          * @param document      the OpenRocketDocument.
45          * @return                      a collection of all optimization parameters applicable to the document.
46          */
47         public static Collection<OptimizableParameter> getOptimizableParameters(OpenRocketDocument document) {
48                 List<OptimizableParameter> list = new ArrayList<OptimizableParameter>();
49                 
50                 ServiceLoader<OptimizableParameterService> loader = ServiceLoader.load(OptimizableParameterService.class);
51                 for (OptimizableParameterService service : loader) {
52                         list.addAll(service.getParameters(document));
53                 }
54                 
55                 return list;
56         }
57         
58         
59 }