Added Java Doc and Logger to Player

This commit is contained in:
Leonardo Brandenberger 2022-05-13 01:36:54 +02:00
parent 06003d5b54
commit befa159f90
1 changed files with 71 additions and 8 deletions

View File

@ -1,54 +1,117 @@
package ch.zhaw.projekt2.turnierverwaltung;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.logging.Logger;
/**
* Class Representing a single Player
*/
public class Player extends Person implements Participant {
private LocalDate dateOfBirth;
private static final Logger logger = Logger.getLogger(FileIO.class.getCanonicalName());
/**
* Constructor of player initializes a new player setting sever attributes like firstname, name birthdate usw.
* and checking if the format is valid
*
* @param firstName the firstname of the player
* @param name the name of the player
* @param phoneNumber the phone number of the player
* @param dateOfBirth the birthdate of the player
* @throws InvalidNameException thrown when the name or firstname are not in a valid format
* @throws InvalidPhoneNumberException thrown when the phone number is not in a valid format
*/
public Player(String firstName, String name, String phoneNumber, String dateOfBirth) throws InvalidNameException, InvalidPhoneNumberException {
super(firstName, name, phoneNumber);
logger.fine("initialized super of Player with firstname, name and phone number");
logger.finer("Setting the date of birth as:" + dateOfBirth);
setDateOfBirth(dateOfBirth);
logger.finer("finished initializing the Player:" + name);
}
/**
* Method to get the birthday of a player
*
* @return the birthday of a player
*/
public LocalDate getDateOfBirth() {
logger.fine("returning the birthday of " + getName());
return dateOfBirth;
}
public String getFormatedDateOfBirth(){
/**
* Method that returns the date of birth formatted in eu way dd.MM.YYYY and as String
*
* @return String of formatted date
*/
public String getFormattedDateOfBirth() {
logger.finer("Trying to get the formated date");
try {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
return dateOfBirth.format(formatter);
logger.fine("Returning the formatted birthdate of player: " + getName());
return dateOfBirth.format(
formatter);
} catch (Exception e) {
//todo handle and logging
logger.warning("Failed to get formatted date for player " + getName() + "Error: " + e);
//TODO handle
return "";
}
}
/**
* Method to set the date of Birth with a String provided.
* @param dateOfBirth to be as a String
*/
public void setDateOfBirth(String dateOfBirth) {
logger.finer("Trying to set of birth with the String " + dateOfBirth + " provided");
if (dateOfBirth.length() > 0) {
String[] date = dateOfBirth.split("\\.");
this.dateOfBirth = LocalDate.of(Integer.valueOf(date[2]), Integer.valueOf(date[1]), Integer.valueOf(date[0]));
logger.fine("");
logger.fine("Date of birth of" + getName() + " has been set to " + dateOfBirth);
} else {
logger.warning("Date of birth of " + getName() + " could not be set, leaving at null");
dateOfBirth = null;
}
}
/**
* Method that sets date of Birth with a LocalDate provided
*
* @param dateOfBirth parameter given as LocalDate
*/
public void setDateOfBirth(LocalDate dateOfBirth) {
logger.fine("Setting date of birth of" + getName() + "with provided LocalDate: " + dateOfBirth);
this.dateOfBirth = dateOfBirth;
}
/**
* Override of equals method to compare participants against each other
*
* @param participant
* @return true if equals, false if not
*/
@Override
public boolean equals(Participant participant) {
logger.fine("Comparing " + participant + " with " + this);
return getClass().equals(participant.getClass()) && toString().toLowerCase().equals(participant.toString().toLowerCase());
}
/**
* Override of the change method to change a Participant with a new one
*
* @param participant the new participant to be added
*/
@Override
public void change(Participant participant) {
logger.fine("changing the current Player " + this + "with " + participant.getName());
Player player = (Player) participant;
setDateOfBirth(player.getDateOfBirth());
setPhoneNumber(player.getPhoneNumber());
}