110 lines
3.3 KiB
Java
110 lines
3.3 KiB
Java
import java.time.LocalDate;
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
|
|
import static java.util.Objects.requireNonNull;
|
|
|
|
public final class Pet {
|
|
|
|
private String id;
|
|
private String name;
|
|
private String owner;
|
|
private String contactInformation;
|
|
private String breed;
|
|
private int age;
|
|
private LocalDate registrationDate;
|
|
private final List<Appointment> appointments = new ArrayList<>();
|
|
|
|
public Pet(String id, String name, String owner, String contactInformation, String breed, int age, LocalDate registrationDate) {
|
|
|
|
if (age < 0) throw new IllegalArgumentException("Age must be over 0");
|
|
|
|
this.age = age;
|
|
this.id = requireNonNull(id, "id must not be null");
|
|
this.name = requireNonNull(name, "Name must not be null");
|
|
this.owner = requireNonNull(owner, "Owner must not be null");
|
|
this.contactInformation = requireNonNull(contactInformation, "Contact information must not be null");
|
|
this.breed = requireNonNull(breed, "Breed must not be null");
|
|
this.registrationDate = requireNonNull(registrationDate, "Registration date must not be null");
|
|
}
|
|
|
|
public void addAppointment(Appointment appointment) {
|
|
this.appointments.add(requireNonNull(appointment, "Appointment must not be null"));
|
|
}
|
|
|
|
public String getId() {
|
|
return id;
|
|
}
|
|
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
public String getOwner() {
|
|
return owner;
|
|
}
|
|
|
|
public String getContactInformation() {
|
|
return contactInformation;
|
|
}
|
|
|
|
public String getBreed() {
|
|
return breed;
|
|
}
|
|
|
|
public int getAge() {
|
|
return age;
|
|
}
|
|
|
|
public LocalDate getRegistrationDate() {
|
|
return registrationDate;
|
|
}
|
|
|
|
public List<Appointment> getAppointments() {
|
|
return Collections.unmodifiableList(appointments);
|
|
}
|
|
|
|
public void setId(String id) {
|
|
this.id = requireNonNull(id, "id must not be null");
|
|
}
|
|
|
|
public void setName(String name) {
|
|
this.name = requireNonNull(name, "Name must not be null");
|
|
}
|
|
|
|
public void setOwner(String owner) {
|
|
this.owner = requireNonNull(owner, "Owner must not be null");
|
|
}
|
|
|
|
public void setContactInformation(String contactInformation) {
|
|
this.contactInformation =requireNonNull(contactInformation, "Contact information must not be null");
|
|
}
|
|
|
|
public void setBreed(String breed) {
|
|
this.breed = requireNonNull(breed, "Breed must not be null");
|
|
}
|
|
|
|
public void setAge(int age) {
|
|
if (age < 0) throw new IllegalArgumentException("Age must be over 0");
|
|
this.age = age;
|
|
}
|
|
|
|
public void setRegistrationDate(LocalDate registrationDate) {
|
|
this.registrationDate = requireNonNull(registrationDate, "Registration date must not be null");
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "Pet{" +
|
|
"id='" + id + '\'' +
|
|
", name='" + name + '\'' +
|
|
", owner='" + owner + '\'' +
|
|
", contactInformation='" + contactInformation + '\'' +
|
|
", breed='" + breed + '\'' +
|
|
", age=" + age +
|
|
", registrationDate=" + registrationDate +
|
|
", appointments=" + appointments +
|
|
'}';
|
|
}
|
|
} |