package storm.applications.model.smartgrid; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * From: http://corsi.dei.polimi.it/distsys/2013-2014/projects.html * @author Alessandro Sivieri */ public class Household { private final Map<Integer, SmartPlug> plugs; private final int id; public Household(int id) { this.id = id; this.plugs = new HashMap<>(); } public int getId() { return id; } public List<SmartPlug> getPlugs() { return new ArrayList<>(plugs.values()); } public void addSmartPlug(SmartPlug plug) { plugs.put(plug.getId(), plug); } public List<String> toCSV() { ArrayList<String> res = new ArrayList<>(); for (SmartPlug plug : plugs.values()) { res.add(String.valueOf(id) + "," + plug.toCSV()); } return res; } @Override public int hashCode() { int prime = 31; int result = 1; result = 31 * result + id; return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Household other = (Household)obj; return id == other.id; } @Override public String toString() { StringBuilder res = new StringBuilder("household " + id + " {"); for (SmartPlug plug : plugs.values()) { res.append(plug).append(", "); } res.append("}"); return res.toString(); } }