added Exception for Invalid Date

This commit is contained in:
schrom01 2022-05-12 22:41:18 +02:00
parent f885092259
commit 3ebf9c5072
2 changed files with 24 additions and 3 deletions

View File

@ -9,7 +9,7 @@ public class Player extends Person implements Participant{
private LocalDate dateOfBirth;
public Player(String firstName, String name, String phoneNumber, String dateOfBirth) throws InvalidNameException, InvalidPhoneNumberException {
public Player(String firstName, String name, String phoneNumber, String dateOfBirth) throws InvalidNameException, InvalidPhoneNumberException, InvalidDateException {
super(firstName, name, phoneNumber);
setDateOfBirth(dateOfBirth);
}
@ -28,10 +28,16 @@ public class Player extends Person implements Participant{
}
}
public void setDateOfBirth(String dateOfBirth) {
public void setDateOfBirth(String dateOfBirth) throws InvalidDateException {
if(dateOfBirth.length() > 0) {
String[] date = dateOfBirth.split("\\.");
try{
this.dateOfBirth = LocalDate.of(Integer.valueOf(date[2]), Integer.valueOf(date[1]), Integer.valueOf(date[0]));
} catch (NumberFormatException e) {
e.printStackTrace();
throw new InvalidDateException("Date invalid");
}
} else {
dateOfBirth = null;
}
@ -52,4 +58,16 @@ public class Player extends Person implements Participant{
setDateOfBirth(player.getDateOfBirth());
setPhoneNumber(player.getPhoneNumber());
}
public class InvalidDateException extends Exception {
public InvalidDateException() {
super();
}
public InvalidDateException(String errorMessage) {
super(errorMessage);
}
}
}

View File

@ -128,6 +128,9 @@ public class TournamentDecorator implements IsObservable{
} catch (Person.InvalidPhoneNumberException e) {
e.printStackTrace(); //TODO handle and logging
factoryDecorator.printMessageToFooter("Invalide Telefonnummer",true);
} catch (Player.InvalidDateException e) {
e.printStackTrace();
factoryDecorator.printMessageToFooter("Ungültiges Geburtsdatum", true);
}
}