Skip to content
Snippets Groups Projects
FireProtectionSystem.java 938 B
Newer Older
import java.util.HashSet;

class FireProtectionSystem {
    HashSet<Sensor> sensors = new HashSet<>();
    HashSet<Alarm> alarms = new HashSet<>();

    public void installSensor(Sensor... mySensors) {
        for (Sensor sensor : mySensors) {
            this.sensors.add(sensor);
            sensor.installSystem(this);
        }
    }

    public void installAlarm(Alarm myAlarm) {
        this.alarms.add(myAlarm);
    }
    
    void smokeDetected() {
        for (Alarm alarm : alarms) {
            alarm.setActive(true);
        }
    }

    void stoppedDetectingSmoke() {
        if (allSensorsAreOff()) {
            for (Alarm alarm : alarms) {
                alarm.setActive(false);
            }
        }
    }

    private boolean allSensorsAreOff() {
        for (Sensor sensor : this.sensors) {
            if (sensor.smokeDetected) {
                return false;
            }
        }
        return true;
    }


}