Adressbook/src/main/java/at/ionas999/adressbook/models/Contact.java
2025-04-23 18:56:20 +02:00

60 lines
1.4 KiB
Java

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;
}
}