package MinePumpSystem; import MinePumpSystem.Environment; public class MinePump { boolean pumpRunning = false; boolean systemActive = true; Environment env; public MinePump(Environment env) { super(); this.env = env; } public void timeShift() { if (pumpRunning) env.lowerWaterLevel(); if (systemActive) processEnvironment(); } void processEnvironment() { } private void activatePump__wrappee__base () { pumpRunning = true; } void activatePump() { if (!isMethaneAlarm()) { activatePump__wrappee__base(); } else { //System.out.println("Pump not activated due to methane alarm"); } } public boolean isPumpRunning() { return pumpRunning; } void deactivatePump() { pumpRunning = false; } boolean isMethaneAlarm() { return env.isMethaneLevelCritical(); } @Override public String toString() { return "Pump(System:" + (systemActive?"On":"Off") + ",Pump:" + (pumpRunning?"On":"Off") +") " + env.toString(); } public Environment getEnv() { return env; } public void startSystem() { assert !pumpRunning; systemActive = true; } public void stopSystem() { // feature not present } public boolean isSystemActive() { return systemActive; } }