UserNameClientLookup.java

package com.tradecloud.authentication;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

@Entity
@Table(name = "username_client_lookup", uniqueConstraints = {@UniqueConstraint(columnNames = {"username"})})
public class UserNameClientLookup implements Serializable {

    @Id
    @NotNull
    private String username;

    @NotNull
    @ManyToOne
    @Id
    private Client client;

    public UserNameClientLookup(String username, Client client) {
        this.username = username;
        this.client = client;
    }

    // Default. Needed
    public UserNameClientLookup() {

    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Override
    public String toString() {
        return "UserNameClientLookup [username=" + username + ", clientCode=" + client + "]";
    }

    @Override
    public int hashCode() {
        return new HashCodeBuilder().append(username).append(client).toHashCode();
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (!(obj instanceof UserNameClientLookup)) {
            return false;
        }
        UserNameClientLookup other = (UserNameClientLookup) obj;
        return new EqualsBuilder().append(username, other.getUsername()).append(client, other.getClient()).isEquals();
    }

    public Client getClient() {
        return client;
    }

    public void setClient(Client client) {
        this.client = client;
    }
}