Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
TemporaryKeyImpl.java 5.62 KiB
/**
* OLAT - Online Learning and Training<br>
* http://www.olat.org
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); <br>
* you may not use this file except in compliance with the License.<br>
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing,<br>
* software distributed under the License is distributed on an "AS IS" BASIS, <br>
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
* See the License for the specific language governing permissions and <br>
* limitations under the License.
* <p>
* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
* University of Zurich, Switzerland.
* <hr>
* <a href="http://www.openolat.org">
* OpenOLAT - Online Learning and Training</a><br>
* This file has been modified by the OpenOLAT community. Changes are licensed
* under the Apache 2.0 license as the original file.
*/

package org.olat.registration;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.olat.core.id.CreateInfo;
import org.olat.core.id.Persistable;

/**
 *  Description:
 * 
 * 
 * @author Sabina Jeger
 */
@Entity(name="otemporarykey")
@Table(name="o_temporarykey")
@NamedQueries({
	@NamedQuery(name="loadTemporaryKeyByRegAction", query="select r from otemporarykey r where r.regAction=:action"),
	@NamedQuery(name="loadTemporaryKeyByRegKey", query="select r from otemporarykey r where r.registrationKey=:regkey"),
	@NamedQuery(name="loadTemporaryKeyByEmailAddress", query="select r from otemporarykey r where r.emailAddress=:email")
})
public class TemporaryKeyImpl implements Persistable, CreateInfo, TemporaryKey {

	private static final long serialVersionUID = 2617181963956081372L;
	
	@Id
	@GeneratedValue(generator = "system-uuid")
	@GenericGenerator(name = "system-uuid", strategy = "enhanced-sequence", parameters={
		@Parameter(name="sequence_name", value="hibernate_unique_key"),
		@Parameter(name="force_table_use", value="true"),
		@Parameter(name="optimizer", value="legacy-hilo"),
		@Parameter(name="value_column", value="next_hi"),
		@Parameter(name="increment_size", value="32767"),
		@Parameter(name="initial_value", value="32767")
	})
	@Column(name="reglist_id", nullable=false, unique=true, insertable=true, updatable=false)
	private Long key;
	@Version
	private int version;

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name="creationdate", nullable=false, insertable=true, updatable=false)
	private Date creationDate;

	@Column(name="email", nullable=false, unique=true, insertable=true, updatable=true)
	private String emailAddress;
	@Column(name="ip", nullable=false, unique=true, insertable=true, updatable=true)
	private String ipAddress;
	@Column(name="regkey", nullable=false, unique=true, insertable=true, updatable=true)
	private String registrationKey;
	@Column(name="action", nullable=false, unique=true, insertable=true, updatable=true)
	private String regAction;
	@Column(name="mailsent", nullable=false, unique=true, insertable=true, updatable=true)
	private boolean mailSent = false;
	
	public TemporaryKeyImpl() {
		//
	}

	@Override
	public Long getKey() {
		return key;
	}

	public void setKey(Long key) {
		this.key = key;
	}

	/**
	 * @see org.olat.registration.TemporaryKey#setCreationDate(java.util.Date)
	 */
	public void setCreationDate(Date date) {
		creationDate = date;
	}

	/**
	 * @see org.olat.registration.TemporaryKey#getEmailAddress()
	 */
	public String getEmailAddress() {
		return emailAddress;
	}

	/**
	 * @see org.olat.registration.TemporaryKey#setEmailAddress(java.lang.String)
	 */
	public void setEmailAddress(String string) {
		emailAddress = string;
	}

	/**
	 * @see org.olat.registration.TemporaryKey#getIpAddress()
	 */
	public String getIpAddress() {
		return ipAddress;
	}

	/**
	 * @see org.olat.registration.TemporaryKey#setIpAddress(java.lang.String)
	 */
	public void setIpAddress(String string) {
		ipAddress = string;
	}
	/**
	 * @see org.olat.registration.TemporaryKey#getCreationDate()
	 */
	public Date getCreationDate() {
		return creationDate;
	}

	/**
	 * @see org.olat.registration.TemporaryKey#getRegistrationKey()
	 */
	public String getRegistrationKey() {
		return registrationKey;
	}

	/**
	 * @see org.olat.registration.TemporaryKey#setRegistrationKey(java.lang.String)
	 */
	public void setRegistrationKey(String string) {
		registrationKey = string;
	}

	/**
	 * @see org.olat.registration.TemporaryKey#isMailSent()
	 */
	public boolean isMailSent() {
		return mailSent;
	}

	/**
	 * @see org.olat.registration.TemporaryKey#setMailSent(boolean)
	 */
	public void setMailSent(boolean b) {
		mailSent = b;
	}


	@Override
	public String getRegAction() {
		return regAction;
	}

	@Override
	public void setRegAction(String string) {
		regAction = string;
	}

	@Override
	public int hashCode() {
		return getKey() == null ? 8742558 : getKey().hashCode();
	}

	@Override
	public boolean equals(Object obj) {
		if(this == obj) {
			return true;
		}
		if(obj instanceof TemporaryKeyImpl) {
			TemporaryKeyImpl tmpKey = (TemporaryKeyImpl)obj;
			return getKey() != null && getKey().equals(tmpKey.getKey());
		}
		return false;
	}

	@Override
	public boolean equalsByPersistableKey(Persistable persistable) {
		return equals(persistable);
	}
}