blob: 8b1979bc62c8661862c9a3ff5489d26098e6f658 [file] [log] [blame]
/*
* Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Marcel Valovy - 2.6.0 - initial implementation
package org.eclipse.persistence.testing.jaxb.beanvalidation.dom;
import jakarta.validation.Valid;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
/**
* @author Marcel Valovy - marcel.valovy@oracle.com
* @since 2.6
*/
@XmlRootElement
public class Employee {
@NotNull
@XmlAttribute
private Integer id;
@Min(value=18, groups=Drivers.class)
@XmlAttribute
@NotNull
private int age;
@NotNull
@Size(min = 3, max = 15)
@XmlElement
private String personalName;
@Pattern(regexp="\\(\\d{3}\\)\\d{3}-\\d{4}")
@XmlElement
private String phoneNumber;
@NotNull
@XmlElement
private Department department;
@NotNull(groups=Drivers.class)
@Valid
@XmlElement
private DrivingLicense drivingLicense;
public Employee(){
}
public Employee withId(int id){
this.id = id;
return this;
}
public Employee withAge(int age){
this.age = age;
return this;
}
public Employee withPersonalName(String personalName){
this.personalName = personalName;
return this;
}
public Employee withPhoneNumber(String phoneNumber){
this.phoneNumber = phoneNumber;
return this;
}
public Employee withDepartment(Department department){
this.department = department;
return this;
}
public Employee withDrivingLicense(DrivingLicense drivingLicense){
this.drivingLicense = drivingLicense;
return this;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Employee employee = (Employee) o;
if (age != employee.age) {
return false;
}
if (department != employee.department) {
return false;
}
if (drivingLicense != null ? !drivingLicense.equals(employee.drivingLicense) : employee.drivingLicense != null) {
return false;
}
if (id != null ? !id.equals(employee.id) : employee.id != null) {
return false;
}
if (personalName != null ? !personalName.equals(employee.personalName) : employee.personalName != null) {
return false;
}
if (phoneNumber != null ? !phoneNumber.equals(employee.phoneNumber) : employee.phoneNumber != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = age;
result = 31 * result + (id == null ? 0 : id);
result = 31 * result + (personalName != null ? personalName.hashCode() : 0);
result = 31 * result + (phoneNumber != null ? phoneNumber.hashCode() : 0);
result = 31 * result + (department != null ? department.hashCode() : 0);
result = 31 * result + (drivingLicense != null ? drivingLicense.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "Employee{" +
"id=" + id +
", age=" + age +
", personalName='" + personalName + '\'' +
", phoneNumber='" + phoneNumber + '\'' +
", department=" + department +
", drivingLicense=" + drivingLicense +
'}';
}
}