UserInfo.java

package com.tradecloud.authentication;

import com.tradecloud.common.base.PersistenceBase;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.hibernate.annotations.ForeignKey;

import javax.persistence.Entity;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import java.io.Serializable;

/**
 *
 */
@Entity
@Table(name = "userinfo")
@XmlAccessorType(XmlAccessType.FIELD)
public class UserInfo extends PersistenceBase implements Serializable {

    private static final long serialVersionUID = 5934757373002114740L;

    @XmlAttribute
    @Size(max = 255, message = "Title must be less than 255 characters")
    private String title;

    @XmlAttribute
    @NotNull(message = "Last name is required")
    @Size(max = 255, message = "Last name must be less than 255 characters")
    private String lastName;

    @XmlAttribute
    @NotNull(message = "First name is required")
    @Size(max = 255, message = "First name must be less than 255 characters")
    private String firstName;

    @XmlAttribute
    private String phone;

    @XmlAttribute
    @Pattern(regexp = "^([\\w-]|(?<!\\.)\\.)+[a-zA-Z0-9]@[a-zA-Z0-9]([a-zA-Z0-9\\-]+)((\\.([a-zA-Z]){2,9}){0,2})$",
            message = "Email format is not valid")
    @NotNull
    private String email;

    @XmlAttribute
    private String fax;

    @XmlAttribute
    private String designation;

    @OneToOne
    @ForeignKey(name = "fk_address")
    private UserAddress address;

    private byte[] electronicSignature;

    public UserInfo() {
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDesignation() {
        return designation;
    }

    public void setDesignation(String designation) {
        this.designation = designation;
    }

    public String getFax() {
        return fax;
    }

    public void setFax(String contactFaxNo) {
        this.fax = contactFaxNo;
    }

    /**
     * Returns the full name.
     *
     * @return Full name.
     */
    public String getFullName() {
        return getFirstName() + " " + getLastName();
    }

    public void setAddress(UserAddress address) {
        this.address = address;
    }

    public UserAddress getAddress() {
        return this.address;
    }

    public byte[] getElectronicSignature() {
        return electronicSignature;
    }

    public void setElectronicSignature(byte[] electronicSignature) {
        this.electronicSignature = electronicSignature;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append("title", title)
                .append("lastName", lastName)
                .append("firstName", firstName)
                .append("email", email)
                .toString();
    }
}