-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAlgorithmicSoftwareDeveloper.java
More file actions
41 lines (33 loc) · 1.53 KB
/
AlgorithmicSoftwareDeveloper.java
File metadata and controls
41 lines (33 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package workers;
public class AlgorithmicSoftwareDeveloper extends SoftwareDeveloper{
private double additionalBonus;
private EmployeeType employeeType = EmployeeType.ALGORITHMIC_SOFTWARE_DEVELOPER;
public AlgorithmicSoftwareDeveloper(String id, String firstName, String lastName, String phoneNumber, String emailAddress,
Gender gender, double basicMonthlySalary, double monthlyBonus, double additionalBonus) {
super(id, firstName, lastName, phoneNumber, emailAddress, gender, basicMonthlySalary,monthlyBonus);
this.additionalBonus = additionalBonus;
this.employeeType = EmployeeType.ALGORITHMIC_SOFTWARE_DEVELOPER;
}
public double getAdditionalBonus() {
return additionalBonus;
}
public void setAdditionalBonus(double additionalBonus) {
if (additionalBonus > 0) {
this.additionalBonus = additionalBonus;
} else {
throw new IllegalArgumentException("Monthly additionalBonus cannot be negative.");
}
}
@Override
public double calculateMonthlyIncome() {
return super.calculateMonthlyIncome() + additionalBonus;
}
public String toString() {
return super.toString().replace("SOFTWARE_DEVELOPER", "ALGORITHMIC_SOFTWARE_DEVELOPER") + ", Additional Bonus: $" + additionalBonus;
}
@Override
public boolean equals(Object other) {
return (other instanceof AlgorithmicSoftwareDeveloper)
&& super.equals(other);
}
}