package at.ionas999.adressbook.models; import java.util.regex.Pattern; public class Contact { private static int contactCounter = 0; private static final Pattern emailPattern = Pattern.compile("^[\\w.%+-]+@[\\w.-]+\\.[a-zA-Z]{2,}$"); private static final Pattern phonePattern = Pattern.compile("^\\+?[0-9-]+$"); private final int id = Contact.contactCounter++; private String name; private String phone; private String email; public Contact(String name, String phone, String email) { this.setEmail(email); this.setName(name); this.setPhone(phone); } public int getId() { return id; } public String getName() { return name; } public String getPhone() { return phone; } public String getEmail() { return email; } public void setName(String name) { this.name = name; } public void setPhone(String phone) { if (!phonePattern.matcher(phone).matches()) { throw new IllegalArgumentException("Invalid phone number format"); } this.phone = phone; } public void setEmail(String email) { if (!emailPattern.matcher(email).matches()) { throw new IllegalArgumentException("Invalid email address format"); } this.email = email; } @Override public String toString() { return this.name; } }