package agents.anac.y2015.group2; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; class G2IssueSubSet { ArrayList issues; LinkedList subBids; G2IssueSubSet (String issue, LinkedList subBids) { issues = new ArrayList(1); issues.add(issue); this.subBids = subBids; } G2IssueSubSet(G2IssueSubSet one, G2IssueSubSet two) { issues = new ArrayList(one.issues.size() + two.issues.size()); issues.addAll(one.issues); issues.addAll(two.issues); subBids = new LinkedList(); for(G2SubBid bidOne : one.subBids) { for(G2SubBid bidTwo : two.subBids) { subBids.add(new G2SubBid(bidOne, bidTwo)); } } } ArrayList generateBids() { ArrayList bids = new ArrayList(); for(G2SubBid subBid: subBids) { HashMap map = new HashMap(); for(int i=issues.size()-1;i>=0; i--) { map.put(issues.get(i), subBid.getValue(i)); } bids.add(new G2Bid(map)); } return bids; } void trimSubBids() { Collections.sort(subBids); Iterator iter = subBids.descendingIterator(); G2SubBid previous = null; while(iter.hasNext()) { G2SubBid curr = iter.next(); if (!curr.hasHigherOtherUtilities(previous)) { //System.out.println("Bid removed"); iter.remove(); } previous = curr; } } }