package org.softlang.company.model; import org.softlang.company.features.visitor.*; import java.io.Serializable; /** * An employee has a name, an address, and a salary. */ public class Employee extends Subunit implements Serializable { private static final long serialVersionUID = -210889592677165250L; private String name; private String address; private double salary; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public double total() { return getSalary(); } public void cut() { setSalary(getSalary() / 2); } /** * Accept a void visitor */ public void accept(VoidVisitor v) { v.visit(this); } /** * Accept a returning visitor */ public <R> R accept(ReturningVisitor<R> v) { return v.visit(this); } }