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 House { private final Map<Integer, Household> households; private final int id; public House(int id) { this.id = id; this.households = new HashMap<>(); } public int getId() { return id; } public List<Household> getHouseholds() { return new ArrayList<>(households.values()); } public void addHousehold(Household household) { households.put(household.getId(), household); } public List<String> toCSV() { ArrayList<String> res = new ArrayList<>(); for (Household household : households.values()) { List<String> plugs = household.toCSV(); for (String householdplug : plugs) { res.add(String.valueOf(id) + "," + householdplug); } } 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; } House other = (House)obj; return id == other.id; } @Override public String toString() { StringBuilder res = new StringBuilder("house " + id + " {"); for (Household household : households.values()) { res.append(household).append(", "); } res.append("}"); return res.toString(); } }