diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java index e993fad..0026069 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/FactoryDecorator.java @@ -51,11 +51,11 @@ public class FactoryDecorator implements IsObservable{ try { factory.setTournament(fileIO.loadTournament(tournamentFile)); openScheduleView(); - } catch (IOException e) { + clearMessage(false); + } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } //TODO handle and logging + printMessageToFooter("Fehler beim lesen der Datei.", true); + } //TODO handle and logging } public void openTournamentList() { diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java index 29bb2c6..648776f 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/Player.java @@ -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("\\."); - this.dateOfBirth = LocalDate.of(Integer.valueOf(date[2]), Integer.valueOf(date[1]), Integer.valueOf(date[0])); + try{ + this.dateOfBirth = LocalDate.of(Integer.valueOf(date[2]), Integer.valueOf(date[1]), Integer.valueOf(date[0])); + } catch (NumberFormatException | IndexOutOfBoundsException 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); + } + + } + } diff --git a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java index eaa2e8d..94655aa 100644 --- a/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java +++ b/app/src/main/java/ch/zhaw/projekt2/turnierverwaltung/TournamentDecorator.java @@ -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); } }