77 lines
2.5 KiB
Java
77 lines
2.5 KiB
Java
package me.zinch.models;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
import jakarta.validation.constraints.NotBlank;
|
|
import jakarta.validation.constraints.NotNull;
|
|
import jakarta.validation.constraints.Size;
|
|
|
|
import java.util.Objects;
|
|
|
|
/**
|
|
* Represents a person with a name, passport ID, hair color, and location.
|
|
*/
|
|
public class Person {
|
|
@NotBlank(message = "Person: Имя персоны не может быть пустым или null")
|
|
@JsonProperty("name")
|
|
private String name; //Поле не может быть null, Строка не может быть пустой
|
|
|
|
@NotNull(message = "Person: Поле passportID не может быть null")
|
|
@Size(min = 5, max = 22, message = "Длина строки passportID должна быть не меньше 5 и не должна быть больше 22")
|
|
@JsonProperty("passportID")
|
|
private String passportID; //Длина строки должна быть не меньше 5, Длина строки не должна быть больше 22, Поле не может быть null
|
|
|
|
@JsonProperty("hairColor")
|
|
private Color hairColor; //Поле может быть null
|
|
|
|
@JsonProperty("location")
|
|
private Location location; //Поле может быть null
|
|
|
|
public Person() {}
|
|
|
|
public Person(String name, String passportID, Color hairColor, Location location) {
|
|
this.name = name;
|
|
this.passportID = passportID;
|
|
this.hairColor = hairColor;
|
|
this.location = location;
|
|
}
|
|
|
|
public void setName(String name) {
|
|
this.name = name;
|
|
}
|
|
|
|
public void setPassportID(String passportID) {
|
|
this.passportID = passportID;
|
|
}
|
|
|
|
public void setHairColor(Color hairColor) {
|
|
this.hairColor = hairColor;
|
|
}
|
|
|
|
public void setLocation(Location location) {
|
|
this.location = location;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "Person{" +
|
|
"name='" + name + '\'' +
|
|
", passportID='" + passportID + '\'' +
|
|
", hairColor=" + hairColor +
|
|
", location=" + location +
|
|
'}';
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
if (this == o) return true;
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
Person person = (Person) o;
|
|
return Objects.equals(name, person.name) && Objects.equals(passportID, person.passportID) && hairColor == person.hairColor && Objects.equals(location, person.location);
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return Objects.hash(name, passportID, hairColor, location);
|
|
}
|
|
}
|