All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jresearch.commons.base.domain.User Maven / Gradle / Ivy

The newest version!
package org.jresearch.commons.base.domain;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

import javax.annotation.Nonnull;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import com.google.common.base.MoreObjects;

@Entity
@Table(name = "NET_USER")
public class User extends ExtDomainJpa {

	@Nonnull
	public static final String AUTO_USER = "nBZC!rIMTQUDfNI2zdkJDIi2ezS5iZ9&FD06bCG5rCtrPb!ylmUipevcO$Ad1aKMt%L$ER&KxnrK45vH*hljz&4wmrUhPfnXfZ0j"; //$NON-NLS-1$
	@Nonnull
	public static final String TEMP_USER = "2#2JgU^*LydK3uYskGS!8WD5HHk9jnFIugRW$oIjTiY3gBv1QNy2&xMk6kGt7qAKyeT40gA^MsSUhk*vBSNNK@@0Z2QmzoGtwN!s"; //$NON-NLS-1$

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_generator")
	@SequenceGenerator(name = "user_generator", sequenceName = "user_seq")
	private Long id;
	@Column(name = "PWDHASH")
	private byte[] password;
	private byte[] salt;
	@Column(unique = true, nullable = false)
	private String userName;
	@Column(unique = true)
	private String email;
	private String firstName;
	private String lastName;
	private String description;
	@OneToMany(mappedBy = "user")
	private Set logins = new HashSet<>();

	public Set getLogins() {
		return logins;
	}

	public void setLogins(final Set logins) {
		this.logins = logins;
	}

	public byte[] getPassword() {
		return password;
	}

	public void setPassword(final byte[] pwd) {
		this.password = pwd;
	}

	public byte[] getSalt() {
		return salt;
	}

	public void setSalt(final byte[] salt) {
		this.salt = salt;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(final String userName) {
		this.userName = userName;
	}

	public String getEmail() {
		return email;
	}

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

	public void addOauthId(final UserNetwork network, final String oauthId) {
		final SocialNetworkLogin login = new SocialNetworkLogin();
		login.setNetwork(network.name());
		login.setUser(this);
		login.setOauthId(oauthId);
		logins.add(login);
	}

	public void addOauthId(final SocialNetworkLogin l) {
		logins.add(l);
	}

	public Long getUserId() {
		return getId();
	}

	public String getFirstName() {
		return firstName;
	}

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

	public String getLastName() {
		return lastName;
	}

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

	public String getDescription() {
		return description;
	}

	public void setDescription(final String description) {
		this.description = description;
	}

	/**
	 * @return the id
	 */
	@Override
	public Long getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	@Override
	public void setId(final Long id) {
		this.id = id;
	}

	@SuppressWarnings({ "nls", "null" })
	@Override
	public String toString() {
		return MoreObjects.toStringHelper(this)
				.omitNullValues()
				.add("super", super.toString())
				.add("id", id)
				.add("pwd", Arrays.deepToString(new Object[] { password }))
				.add("salt", Arrays.deepToString(new Object[] { salt }))
				.add("userName", userName)
				.add("email", email)
				.add("firstName", firstName)
				.add("lastName", lastName)
				.add("description", description)
				.add("logins", ids(logins))
				.toString();
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy