/* Status.java 11 Jan. 2007 A Status object keeps track of the income and cost streams that the utilitarian will pay when he has a particular status. */ public class Status { public static final String FILLER = "no value specified"; public static final int NUM_STATUSES = 5; public static final int UNDERGRAD = 0; public static final int GRAD_SCHOOL = 1; public static final int WORKING = 2; public static final int RETIRED = 3; public static final int DEAD = 4; public int status; public String[] statusLabels; public String statusString; public int[] income; public int[] costOfLiving; public String option; public int currArrayBucket; public int arraySizes; public int numValuesShowInToString; public void defineStatuses() { statusLabels = new String[NUM_STATUSES]; statusLabels[UNDERGRAD] = "undergrad"; statusLabels[GRAD_SCHOOL] = "gradSchool"; statusLabels[WORKING] = "working"; statusLabels[RETIRED] = "retired"; statusLabels[DEAD] = "dead"; } public Status(int stat, int arrSize, String opt, int numVals) { defineStatuses(); status = stat; arraySizes = arrSize; statusString = statusLabels[status]; currArrayBucket = 0; numValuesShowInToString = numVals; option = opt; income = Applications.makeIncome(arraySizes, status, option); costOfLiving = Applications.makeCostOfLiving (arraySizes, status, option); } public void incrementYears() { if(currArrayBucket + 1 < arraySizes) { currArrayBucket ++; } else { System.out.println ("You can't increment the year past " + arraySizes + ". Error!"); } } public int getIncome() { return income[currArrayBucket]; } public int getCostOfLiving() { return costOfLiving[currArrayBucket]; } public int yearsInStatus() { return currArrayBucket + 1; } public String toString() { String returnMe = "Status = " + statusString; if(option != FILLER) { returnMe = returnMe.concat(", " + option); } returnMe = returnMe.concat("\ncurrent income = " + wealthCalc.addCommas(getIncome()) + "\ncurrent cost of living = " + wealthCalc.addCommas(getCostOfLiving())); return returnMe; } public String assumpToString() { String returnMe = "Status = " + statusString + "\n"; if(option != FILLER) { returnMe = returnMe.concat(option + "\n"); } for(int i = 0; i < numValuesShowInToString; i ++) { returnMe = returnMe.concat (" In year " + (i+1) + " of this status, income = " + wealthCalc.addCommas(income[i]) + " and cost of living = " + wealthCalc.addCommas(costOfLiving[i]) + ".\n"); } return returnMe; } }