public abstract class Device { private boolean ison; public INHOMELOC room; protected Device() { } public void turn_off(){ ison=false; System.out.println("Je vypnute zariadenie"); } public void turn_on(){ ison=true; System.out.println("Je vypnute zariadenie"); } public Device(INHOMELOC room) { this.room = room; } public boolean isIson() { return ison; } public void setIson(boolean ison) { this.ison = ison; } public void setLocation(INHOMELOC room) { // Code to set the location of the device } } public class Dom { private int pocetzariadeni; private Device[] zariadenia; public Dom() { this.zariadenia=new Device[10]; this.pocetzariadeni=0; } public void addDevice(Device tentoDevice){ zariadenia[pocetzariadeni]=tentoDevice; pocetzariadeni++; } public void delteDevice(Device tentoDevice){ for (int i = 0; i < pocetzariadeni; i++) { if (zariadenia[i] == tentoDevice) { for (int j = i; j < pocetzariadeni - 1; j++) { zariadenia[j] = zariadenia[j + 1]; } zariadenia[pocetzariadeni - 1] = null; pocetzariadeni--; break; } } } } public class Light extends Device implements shineable,Switchable{ public Light(INHOMELOC room) { setLocation(room); } @Override public void switch_device() { if (isIson()==false){ setIson(true); }else{ setIson(false); } } @Override public void shine() { System.out.println("Svietim"); } } public class Rekuperacia extends Device implements Switchable { private static Rekuperacia instance; public static Rekuperacia getInstance() { if (instance == null) { instance= new Rekuperacia(); } return instance; } //Signleton @Override public void switch_device() { } public Rekuperacia() { setLocation(INHOMELOC.TECHNICKA); System.out.println("Je v technickej miestnsoti"); } } import java.lang.reflect.Type; import java.util.List; public class ControlPanel { private List devices; public ControlPanel(List devices) { this.devices = devices; } public void switchAll() { for (Type device : devices) { device.switch_device(); } } }