Source of BasePlusCommissionEmployee.java


  1: // Fig. 9.6: BasePlusCommissionEmployee.java
  2: // BasePlusCommissionEmployee class represents an employee that receives
  3: // a base salary in addition to commission.
  4: 
  5: public class BasePlusCommissionEmployee
  6: {
  7:    private String firstName;
  8:    private String lastName;
  9:    private String socialSecurityNumber;
 10:    private double grossSales; // gross weekly sales
 11:    private double commissionRate; // commission percentage
 12:    private double baseSalary; // base salary per week
 13: 
 14:    // six-argument constructor
 15:    public BasePlusCommissionEmployee( String first, String last, 
 16:       String ssn, double sales, double rate, double salary )
 17:    {
 18:       // implicit call to Object constructor occurs here
 19:       firstName = first;
 20:       lastName = last;
 21:       socialSecurityNumber = ssn;
 22:       setGrossSales( sales ); // validate and store gross sales
 23:       setCommissionRate( rate ); // validate and store commission rate
 24:       setBaseSalary( salary ); // validate and store base salary
 25:    } // end six-argument BasePlusCommissionEmployee constructor
 26: 
 27:    // set first name
 28:    public void setFirstName( String first )
 29:    {
 30:       firstName = first;
 31:    } // end method setFirstName
 32: 
 33:    // return first name
 34:    public String getFirstName()
 35:    {
 36:       return firstName;
 37:    } // end method getFirstName
 38: 
 39:    // set last name
 40:    public void setLastName( String last )
 41:    {
 42:       lastName = last;
 43:    } // end method setLastName
 44: 
 45:    // return last name
 46:    public String getLastName()
 47:    {
 48:       return lastName;
 49:    } // end method getLastName
 50: 
 51:    // set social security number
 52:    public void setSocialSecurityNumber( String ssn )
 53:    {
 54:       socialSecurityNumber = ssn; // should validate
 55:    } // end method setSocialSecurityNumber
 56: 
 57:    // return social security number
 58:    public String getSocialSecurityNumber()
 59:    {
 60:       return socialSecurityNumber;
 61:    } // end method getSocialSecurityNumber
 62: 
 63:    // set gross sales amount
 64:    public void setGrossSales( double sales )
 65:    {
 66:       grossSales = ( sales < 0.0 ) ? 0.0 : sales;
 67:    } // end method setGrossSales
 68: 
 69:    // return gross sales amount
 70:    public double getGrossSales()
 71:    {
 72:       return grossSales;
 73:    } // end method getGrossSales
 74: 
 75:    // set commission rate
 76:    public void setCommissionRate( double rate )
 77:    {
 78:       commissionRate = ( rate > 0.0 && rate < 1.0 ) ? rate : 0.0;
 79:    } // end method setCommissionRate
 80: 
 81:    // return commission rate
 82:    public double getCommissionRate()
 83:    {
 84:       return commissionRate;
 85:    } // end method getCommissionRate
 86: 
 87:    // set base salary
 88:    public void setBaseSalary( double salary )
 89:    {
 90:       baseSalary = ( salary < 0.0 ) ? 0.0 : salary;
 91:    } // end method setBaseSalary
 92: 
 93:    // return base salary
 94:    public double getBaseSalary()
 95:    {
 96:       return baseSalary;
 97:    } // end method getBaseSalary
 98: 
 99:    // calculate earnings
100:    public double earnings()
101:    {
102:       return baseSalary + ( commissionRate * grossSales );
103:    } // end method earnings
104: 
105:    // return String representation of BasePlusCommissionEmployee
106:    public String toString()
107:    {
108:       return String.format( 
109:          "%s: %s %s\n%s: %s\n%s: %.2f\n%s: %.2f\n%s: %.2f", 
110:          "base-salaried commission employee", firstName, lastName, 
111:          "social security number", socialSecurityNumber, 
112:          "gross sales", grossSales, "commission rate", commissionRate, 
113:          "base salary", baseSalary );
114:    } // end method toString
115: } // end class BasePlusCommissionEmployee
116: 
117: 
118: /**************************************************************************
119:  * (C) Copyright 1992-2005 by Deitel & Associates, Inc. and               *
120:  * Pearson Education, Inc. All Rights Reserved.                           *
121:  *                                                                        *
122:  * DISCLAIMER: The authors and publisher of this book have used their     *
123:  * best efforts in preparing the book. These efforts include the          *
124:  * development, research, and testing of the theories and programs        *
125:  * to determine their effectiveness. The authors and publisher make       *
126:  * no warranty of any kind, expressed or implied, with regard to these    *
127:  * programs or to the documentation contained in these books. The authors *
128:  * and publisher shall not be liable in any event for incidental or       *
129:  * consequential damages in connection with, or arising out of, the       *
130:  * furnishing, performance, or use of these programs.                     *
131:  *************************************************************************/