Iterator<String> iter = active_agent_ids.iterator();
PublicEnvironmentConnection ec = PublicEnvironmentConnection.getInstance();
while (iter.hasNext())
{
String groupID = iter.next();
PublicGroupDataModel dm = ec.getGroupById(groupID);
Map<String, List<Tuple<Double, Double>>> loansGiven = PoliticalGroup.getLoansGiven(
dm);
double totalAmountGiven = 0;
if (loansGiven != null)
{
for (String debtors : loansGiven.keySet())
{
//if (ec.getGroupById(debtors) == null) break;
double amountBorrowed = 0;
for (Tuple<Double, Double> t : loansGiven.get(debtors))
{
amountBorrowed += t.getKey() * (1 + t.getValue());
}
totalAmountGiven += amountBorrowed;
}
}
Map<String, List<Tuple<Double, Double>>> loansTaken = PoliticalGroup.getLoansTaken(
dm);
double totalAmountTaken = 0;
if (loansTaken != null)
{
for (String creditors : loansTaken.keySet())
{
//if (ec.getGroupById(creditors) == null) break;
double amountBorrowed = 0;
for (Tuple<Double, Double> t : loansTaken.get(creditors))
{
amountBorrowed += t.getKey() * (1 + t.getValue());
}
totalAmountTaken += amountBorrowed;
}
}
double averageHappiness = 0;
for (String member : dm.getMemberList())
{
averageHappiness += ec.getAgentById(member).getCurrentHappiness();
}
averageHappiness = averageHappiness / dm.getMemberList().size();
String spaces = " ";
data.add(dm.getName()
+ spaces + Math.round(dm.getCurrentReservedFood())
+ spaces + Math.round(totalAmountGiven)
+ spaces + Math.round(totalAmountTaken)
+ spaces + averageHappiness
+ spaces + PoliticalGroup.getGreediness(dm));
}