import java.text.NumberFormat;
import java.util.Locale;
public class Client
{
// instance data
private String name;
private long income_this_year;
private double percent_cut;
// static data
public static final int MIN_INCOME_VAL = 0;
public static final int MAX_INCOME_VAL = 50000;
public static final int MIN_NAME_LEN = 2;
public static final int MAX_NAME_LEN = 20;
// default constructor
Client()
{
name = "undefined";
income_this_year = MIN_INCOME_VAL;
percent_cut = 0;
}
// parameter constructor
Client(String str_name, long annualIncome, double cut)
{
if (!SetClient(str_name, annualIncome, cut))
SetClient();
}
public void SetClient()
{
SetClient("undefined", MIN_INCOME_VAL, 0.0);
}
// accessor
String GetName() { return name; }
long GetIncome() { return income_this_year; }
double GetCut() { return percent_cut; }
// mutators
public boolean SetClient(String str_name, long annualIncome, double cut)
{
if (str_name.length() > MIN_NAME_LEN || str_name.length() < MAX_NAME_LEN
&& annualIncome > MIN_INCOME_VAL ||
annualIncome < MAX_INCOME_VAL
&& cut > 0.0 || cut < 100.0)
{
name = str_name;
income_this_year = annualIncome;
percent_cut = cut;
return true;
}
return false;
}
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(Locale.US);
public String ToShow()
{
String display = "\nClient: "
+ "\n Name: \t\t\t" + name
+ "\n Annual Income: \t" + currencyFormat.format(income_this_year)
+ "\n Percent cut: \t\t" + percent_cut + "%";
return display;
}
// method Display()
public void Display()
{
System.out.println(ToShow());
}
}