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