Added remainingPhonePlanMinutes validator

This commit is contained in:
Trishaan committed 2025-09-29 01:33:27 -07:00
1 parent ad4296d6a4
commit a35e706c88
1 file changed
+30 -6
+30 -6
View File
@@ -10,7 +10,9 @@ package ca.bcit.comp2522.lab03;
* @version 1.0.0 * @version 1.0.0
*/ */
public class IPhone extends IDevice { public class IPhone extends IDevice {
private static final int MIN_CAREER_CHARACTERS = 3;
private static final int MAX_CAREER_CHARACTERS = 15;
private static final double NO_MINUTES_REMAINING = 0.0;
private static final int IPHONE_HASH = 11; private static final int IPHONE_HASH = 11;
private static final int IPHONE_HASH_CODE = 101; private static final int IPHONE_HASH_CODE = 101;
@@ -24,12 +26,16 @@ public class IPhone extends IDevice {
*/ */
public IPhone( public IPhone(
final double remainingPhonePlanMinutes, final double remainingPhonePlanMinutes,
final String carrier final String carrier)
) { {
super("talking"); super("talking");
// TODO: validate String inputs, possibly other inputs too minutesValidator(remainingPhonePlanMinutes);
this.remainingPhonePlanMinutes = remainingPhonePlanMinutes; this.remainingPhonePlanMinutes = remainingPhonePlanMinutes;
stringValidator(carrier,
MIN_CAREER_CHARACTERS,
MAX_CAREER_CHARACTERS);
this.carrier = carrier; this.carrier = carrier;
} }
@@ -67,8 +73,17 @@ public class IPhone extends IDevice {
@Override @Override
public String toString() { public String toString() {
// TODO: convert to StringBuilder, refer to IPad final StringBuilder iphoneDetails;
return super.toString() + " " + this.remainingPhonePlanMinutes + " " + this.carrier;
iphoneDetails = new StringBuilder();
iphoneDetails.append(super.toString());
iphoneDetails.append(" ");
iphoneDetails.append(this.remainingPhonePlanMinutes);
iphoneDetails.append(" ");
iphoneDetails.append(this.carrier);
return iphoneDetails.toString();
} }
/** /**
@@ -112,4 +127,13 @@ public class IPhone extends IDevice {
return hash; return hash;
} }
public void minutesValidator(final double mins)
{
if(mins < NO_MINUTES_REMAINING)
{
throw new IllegalArgumentException("Minutes cannot be negative");
}
}
} }