create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / simulation / listeners / AbstractSimulationListener.java
1 package net.sf.openrocket.simulation.listeners;
2
3 import java.util.List;
4
5 import net.sf.openrocket.aerodynamics.AerodynamicForces;
6 import net.sf.openrocket.aerodynamics.FlightConditions;
7 import net.sf.openrocket.models.atmosphere.AtmosphericConditions;
8 import net.sf.openrocket.motor.MotorId;
9 import net.sf.openrocket.motor.MotorInstance;
10 import net.sf.openrocket.rocketcomponent.MotorMount;
11 import net.sf.openrocket.rocketcomponent.RecoveryDevice;
12 import net.sf.openrocket.simulation.AccelerationData;
13 import net.sf.openrocket.simulation.FlightDataType;
14 import net.sf.openrocket.simulation.FlightEvent;
15 import net.sf.openrocket.simulation.MassData;
16 import net.sf.openrocket.simulation.SimulationStatus;
17 import net.sf.openrocket.simulation.exception.SimulationException;
18 import net.sf.openrocket.util.Coordinate;
19
20
21 /**
22  * An abstract base class for implementing simulation listeners.  This class implements all
23  * of the simulation listener interfaces using methods that have no effect on the simulation.
24  * The recommended way of implementing simulation listeners is to extend this class.
25  * 
26  * @author Sampo Niskanen <sampo.niskanen@iki.fi>
27  */
28 public class AbstractSimulationListener implements SimulationListener, SimulationComputationListener,
29                 SimulationEventListener {
30         
31         ////  SimulationListener  ////
32         
33         @Override
34         public String getName() {
35                 return this.getClass().getSimpleName();
36         }
37         
38         @Override
39         public String[] getMenuPosition() {
40                 return new String[0];
41         }
42         
43         @Override
44         public void startSimulation(SimulationStatus status) throws SimulationException {
45                 // No-op
46         }
47         
48         @Override
49         public void endSimulation(SimulationStatus status, SimulationException exception) {
50                 // No-op
51         }
52         
53         @Override
54         public boolean preStep(SimulationStatus status) throws SimulationException {
55                 return true;
56         }
57         
58         @Override
59         public void postStep(SimulationStatus status) throws SimulationException {
60                 // No-op
61         }
62         
63         /**
64          * {@inheritDoc}
65          * <p>
66          * <em>This implementation of the method always returns <code>false</code>.</em>
67          */
68         @Override
69         public boolean isSystemListener() {
70                 return false;
71         }
72         
73         /**
74          * Return an array of any flight data types this listener creates.
75          */
76         @Override
77         public FlightDataType[] getFlightDataTypes(){
78                 return new FlightDataType[] {};
79         }
80         
81         
82         ////  SimulationEventListener  ////
83         
84         @Override
85         public boolean addFlightEvent(SimulationStatus status, FlightEvent event) throws SimulationException {
86                 return true;
87         }
88         
89         @Override
90         public boolean handleFlightEvent(SimulationStatus status, FlightEvent event) throws SimulationException {
91                 return true;
92         }
93         
94         @Override
95         public boolean motorIgnition(SimulationStatus status, MotorId motorId, MotorMount mount, MotorInstance instance) throws SimulationException {
96                 return true;
97         }
98         
99         @Override
100         public boolean recoveryDeviceDeployment(SimulationStatus status, RecoveryDevice recoveryDevice) throws SimulationException {
101                 return true;
102         }
103         
104         
105         
106         ////  SimulationComputationListener  ////
107         
108         @Override
109         public AccelerationData preAccelerationCalculation(SimulationStatus status) throws SimulationException {
110                 return null;
111         }
112         
113         @Override
114         public AerodynamicForces preAerodynamicCalculation(SimulationStatus status) throws SimulationException {
115                 return null;
116         }
117         
118         @Override
119         public AtmosphericConditions preAtmosphericModel(SimulationStatus status) throws SimulationException {
120                 return null;
121         }
122         
123         @Override
124         public FlightConditions preFlightConditions(SimulationStatus status) throws SimulationException {
125                 return null;
126         }
127         
128         @Override
129         public double preGravityModel(SimulationStatus status) throws SimulationException {
130                 return Double.NaN;
131         }
132         
133         @Override
134         public MassData preMassCalculation(SimulationStatus status) throws SimulationException {
135                 return null;
136         }
137         
138         @Override
139         public double preSimpleThrustCalculation(SimulationStatus status) throws SimulationException {
140                 return Double.NaN;
141         }
142         
143         @Override
144         public Coordinate preWindModel(SimulationStatus status) throws SimulationException {
145                 return null;
146         }
147         
148         @Override
149         public AccelerationData postAccelerationCalculation(SimulationStatus status, AccelerationData acceleration) throws SimulationException {
150                 return null;
151         }
152         
153         @Override
154         public AerodynamicForces postAerodynamicCalculation(SimulationStatus status, AerodynamicForces forces) throws SimulationException {
155                 return null;
156         }
157         
158         @Override
159         public AtmosphericConditions postAtmosphericModel(SimulationStatus status, AtmosphericConditions atmosphericConditions) throws SimulationException {
160                 return null;
161         }
162         
163         @Override
164         public FlightConditions postFlightConditions(SimulationStatus status, FlightConditions flightConditions) throws SimulationException {
165                 return null;
166         }
167         
168         @Override
169         public double postGravityModel(SimulationStatus status, double gravity) throws SimulationException {
170                 return Double.NaN;
171         }
172         
173         @Override
174         public MassData postMassCalculation(SimulationStatus status, MassData massData) throws SimulationException {
175                 return null;
176         }
177         
178         @Override
179         public double postSimpleThrustCalculation(SimulationStatus status, double thrust) throws SimulationException {
180                 return Double.NaN;
181         }
182         
183         @Override
184         public Coordinate postWindModel(SimulationStatus status, Coordinate wind) throws SimulationException {
185                 return null;
186         }
187         
188 }