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