60 lines
1.4 KiB
Java
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;
|
|
}
|
|
}
|