package be.xhibit.teletask.config.model.json;
import be.xhibit.teletask.model.spec.ComponentSpec;
import be.xhibit.teletask.model.spec.Function;
import be.xhibit.teletask.model.spec.RoomSpec;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* POJO representation of a Room. Holds all components which are controllable in that specific room.
*/
public class Room implements RoomSpec {
private int id;
private int level;
private String name;
private Map<Function, List<TDSComponent>> components;
private Map<Function, List<Integer>> componentTypes;
@Override
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public int getLevel() {
return this.level;
}
public void setLevel(int level) {
this.level = level;
}
@Override
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Override
public List<? extends ComponentSpec> getRelays() {
return this.getComponents().get(Function.RELAY);
}
public Map<Function, List<TDSComponent>> getComponents() {
if (this.components == null) {
this.components = new HashMap<>();
}
return this.components;
}
@Override
public List<? extends ComponentSpec> getGeneralMoods() {
return this.getComponents().get(Function.GENMOOD);
}
@Override
public List<? extends ComponentSpec> getLocalMoods() {
return this.getComponents().get(Function.LOCMOOD);
}
@Override
public List<? extends ComponentSpec> getMotors() {
return this.getComponents().get(Function.MOTOR);
}
@Override
public List<? extends ComponentSpec> getDimmers() {
return this.getComponents().get(Function.DIMMER);
}
@Override
public List<? extends ComponentSpec> getSensors() {
return this.getComponents().get(Function.SENSOR);
}
@Override
public List<? extends ComponentSpec> getConditions() {
return this.getComponents().get(Function.COND);
}
public void setComponents(Map<Function, List<TDSComponent>> components) {
this.components = components;
}
public Map<Function, List<Integer>> getComponentTypes() {
return this.componentTypes;
}
public void setComponentTypes(Map<Function, List<Integer>> componentTypes) {
this.componentTypes = componentTypes;
}
}