X Tutup
import java.util.Random; public class Candidate { private String name = "DEFAULT"; private String slogan = "DEFAULT"; private int money = 0; private static long allMoney = 0; private String party = "DEFAULT"; private Random rand = new Random(); private int adPref = -1; // 0: IssueBased, 1: Attack, 2:TownHall private int fundPref = -1; // 0: Social, 1: RotoCall, 2:PACs private double moneyMod = 1.0; private double debateMod = 1.0; /** * Returns information about Candidate */ public String toString() { String adType = ""; if (getAdPref() == 0) { adType = "Issue Based"; } else if (getAdPref() == 1) { adType = "Attack"; } else if (getAdPref() == 2) { adType = "Town Hall"; } else { adType = "Unknown"; } String fundType = ""; if (getAdPref() == 0) { fundType = "Social Events"; } else if (getAdPref() == 1) { fundType = "Automated Phone Calls"; } else if (getAdPref() == 2) { fundType = "Political Action Committees"; } else { fundType = "Unknown"; } return "Candidate " + getName() + ":\n\tSlogan: " + getSlogan() + "\n\tParty: " + getParty() + "\n\tCurrent funds: " + getMoney() + "\n\tPreferred Ad Type: " + adType + "\n\tPreferred Fund Type: " + fundType + "\n\tCurrent Money Modifier: " + getMoneyMod() + "\n\tCurrent Debate Modifier: " + getDebateMod() + "\n"; } /** * * @param inName Candidates name from input file * @param inSlogan Candidates slogan from input file * @param inParty Candidates party from input file */ public Candidate(String inName, String inSlogan, String inParty) { setName(inName); setSlogan(inSlogan); setParty(inParty); addMoney(rand.nextInt(101)); setAdPref(rand.nextInt(3)); setFundPref(rand.nextInt(3)); } /** * @param inName Candidates name being set */ public void setName(String inName) { name = inName; } /** * returns Candidates Name */ public String getName() { return name; } /** * @param inSlogan Candidates slogan is set from input file. */ public void setSlogan(String inSlogan) { slogan = inSlogan; } /** * returns Slogan */ public String getSlogan() { return slogan; } /** * * @param inParty is Candidattes party from input file */ public void setParty(String inParty) { party = inParty; } public String getParty() { return party; } /** * * @return Candidates random amount of money set in Constructor */ public int getMoney() { return money; } public static long getAllMoney() { return allMoney; } public void addMoney(int newMoney) { money += newMoney; allMoney +=newMoney; } /** * Will return True if Advertisement passed in and Candidates preference are aligned, * else will return false */ public boolean endorse(Advertisement newAd) { return (getAdPref() == 0 && newAd instanceof IssueBasedAdvertisement) || (getAdPref() == 1 && newAd instanceof AttackAdvertisement) || (getAdPref() == 2 && newAd instanceof TownHallAdvertisement); } /** * Needed to compare Candidate names */ public boolean equals(Candidate otherCand) { return getName().equals(otherCand.getName()); } /** * Will compare two candidates based off money */ public int compareTo(Candidate otherCand) { return getMoney() - otherCand.getMoney(); } public int getAdPref() { return adPref; } private void setAdPref(int newPref) { adPref = newPref; } public int getFundPref() { return fundPref; } private void setFundPref(int newPref) { fundPref = newPref; } public double getMoneyMod() { if (moneyMod < 0) { return 0; } return moneyMod; } public void setMoneyMod(double newMod) { moneyMod = newMod; } public double getDebateMod() { if (debateMod < 0) { return 0; } return debateMod; } public void setDebateMod(double newMod) { debateMod = newMod; } }
X Tutup