//
// BasePlusCommissionEmployee2.java
// Class represents employee paid a base salary in addition to commission
// Inherits from CommissionEmployee
//
// Nadeem Abdul Hamid (based on Deitel & Deitel Ch. 9)
// CSC 121 - Spring 2005
//

public class BasePlusCommissionEmployee2 extends CommissionEmployee {

    private double salary;   // base salary per week

    public BasePlusCommissionEmployee2( String name, double sales, 
				       double rate, double salary ) {
	super( name, sales, rate );
	setSalary( salary ); // validate and store salary
    } // end BasePlusCommissionEmployee2 constructor

    // set weekly salary
    public void setSalary( double salary ) {
	this.salary = ( salary < 0.0 ) ? 0.0 : salary;
    }

    // return weekly salary
    public double getSalary() { return salary; }

    // calculate earnings
    public double earnings() { 
	// !!! not allowed: rate and sales are private in superclass
	return salary + ( rate * sales ); 
    }

    // return String representation of BasePlusCommissionEmployee object
    public String toString() {
	// !!! not allowed: attempts to access private superclass members
	return "commission employee: " + name + "\n" +
	    "gross sales: " + sales + "\n" +
	    "commission rate: " + rate + "\n" +
	    "base salary: " + salary;
    } // end method toString

} // end class BasePlusCommissionEmployee2
