001 package market; 002 003 import data.IntegerValue; 004 import data.Value; 005 006 /** 007 * A market's staffer. Can be warehouse worker, seller or manager. 008 */ 009 public class UStaffer extends UPerson { 010 011 public static final String SELLER = new String("Kassierer"); 012 public static final String WAREHOUSE_WORKER = new String("Lagerarbeiter"); 013 public static final String MANAGER = new String("Manager"); 014 015 private IntegerValue ivSalary; 016 private String qualification; 017 018 /** 019 * Creates a new UStaffer. 020 * @param userName the staffer's ID. 021 */ 022 public UStaffer(String userName, String qualification){ 023 super(userName); 024 this.qualification = qualification; 025 } 026 027 /** 028 * Sets the staffer's salary. 029 * @param salary the salary to be set. 030 */ 031 public void setSalary(int salary) { 032 IntegerValue iv = new IntegerValue(salary); 033 ivSalary = iv; 034 } 035 036 /** 037 * Gets the staffer's salary. 038 * @return the salary. 039 */ 040 public IntegerValue getSalary() { 041 return ivSalary; 042 } 043 044 /** 045 * Gets the staffer's qualification. 046 * @return the qualification. 047 */ 048 public String getQualification(){ 049 return qualification; 050 } 051 052 /** 053 * Sets the staffer's qualification.<br> 054 * Can be warehouse worker, seller or manager. 055 * @param s the qualification's denotation. 056 */ 057 public void setQualification(String s) { 058 qualification = s; 059 } 060 061 /** 062 * Computes and returns the money a staffer gets, if he or she is dismissed. 063 * @return the dismissal compensation. 064 * @see Options 065 */ 066 public Value computeDismissalCompensation() { 067 Options o = SMarket.getOptions(); 068 return ivSalary.multiply(getMonthsOfMembership()*o.getTimeOfEmployment()*o.getFractionOfWages()); 069 } 070 }