/** * Negotiator class */ package onetomany.bargainingchipsgame.players; import onetomany.bargainingchipsgame.Bundle; import onetomany.bargainingchipsgame.players.utilityfunction.Utility_Function; /** * A negotiator agent has typically a buyer or seller role. * An agent has a wish list (to buy or sell), which is a bundle, and a utility function for evaluating any proposal. * * Negotiator class has a wishlist, deadline, picture, and (implements) a utility function. * * * @author Faria Nassiri-Mofakham * */ public class Agent implements Runnable { private String name; private Bundle wishlist; private Utility_Function utility; private String picture; private long deadline; public Agent() { setName(null); setWishlist(null); setUtility(null); setDeadline(0); setPicture(null); } public Agent(String n, Bundle w, Utility_Function u, long d, String p) { setName(n); setWishlist(w); setUtility(u); setDeadline(d); setPicture(p); } @Override public void run() { // TODO Auto-generated method stub // ? what to do here? } /** * @return the wishlist */ public Bundle getWishlist() { return wishlist; } /** * @param wishlist the wishlist to set */ public void setWishlist(Bundle wishlist) { this.wishlist = wishlist; } /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the utility */ public Double getUtility(Bundle b) { return utility.getUtility(b); } /** * @param u the utility to set */ public void setUtility(Utility_Function u) { this.utility = u; } /** * @return the picture */ public String getPicture() { return picture; } /** * @param picture the picture to set */ public void setPicture(String picture) { this.picture = picture; } /** * @return the deadline */ public long getDeadline() { return deadline; } /** * @param deadline the deadline to set */ public void setDeadline(long deadline) { this.deadline = deadline; } @Override public String toString() { return this.getClass().getSimpleName()+" (name:"+name+", wishlist:"+this.wishlist+", "+this.utility+", deadline:"+deadline+", picture:"+picture+")"; } public void printUtility(Bundle b) { System.out.println("\n"+this+"\nBundle "+b+"\n"+this.getName()+" evaluates utility of this bundle as "+this.getUtility(b)); } }