com.redhat.rhn.domain.common.ResetPassword.java Source code

Java tutorial

Introduction

Here is the source code for com.redhat.rhn.domain.common.ResetPassword.java

Source

/**
 * Copyright (c) 2015 Red Hat, Inc.
 *
 * This software is licensed to you under the GNU General Public License,
 * version 2 (GPLv2). There is NO WARRANTY for this software, express or
 * implied, including the implied warranties of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
 * along with this software; if not, see
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
 *
 * Red Hat trademarks are not licensed under GPLv2. No permission is
 * granted to use or replicate Red Hat trademarks that are incorporated
 * in this software or its documentation.
 */
package com.redhat.rhn.domain.common;

import java.util.Calendar;
import java.util.Date;

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

import com.redhat.rhn.common.conf.Config;
import com.redhat.rhn.domain.BaseDomainHelper;

/**
 * ResetPassword
 * @version $Rev$
 */
public class ResetPassword extends BaseDomainHelper {

    private static final String PASSWORD_TOKEN_EXPIRATION = "password_token_expiration_hours";
    private static final int PASSWORD_TOKEN_EXPIRATION_DEFAULT = 48;
    private Long id;
    private String token;
    private Long userId;
    private boolean isValid = true;

    /**
     * Create empty ResetPassword
     */
    public ResetPassword() {
        super();
    }

    /**
     * Create a new ResetPassword
     * @param inUserId user whose password needs a reset
     * @param inToken token to use to reset
     */
    public ResetPassword(Long inUserId, String inToken) {
        super();
        userId = inUserId;
        token = inToken;
    }

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

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

    /**
     * @return the token
     */
    public String getToken() {
        return token;
    }

    /**
     * @param inToken the token to set
     */
    public void setToken(String inToken) {
        this.token = inToken;
    }

    /**
     * @return the userId
     */
    public Long getUserId() {
        return userId;
    }

    /**
     * @param inUserId the user-id to set
     */
    public void setUserId(Long inUserId) {
        this.userId = inUserId;
    }

    /**
     * @return the isValid
     */
    public boolean getIsValid() {
        return isValid;
    }

    /**
     * @return  isValid
     */
    public boolean isValid() {
        return getIsValid();
    }

    /**
     * @return true {@literal if CREATED < (now - expiration-hours)}
     */
    public boolean isExpired() {
        Calendar now = Calendar.getInstance();
        Calendar expireDate = Calendar.getInstance();
        expireDate.setTime(getCreated() == null ? new Date() : getCreated());
        expireDate.add(Calendar.HOUR,
                Config.get().getInt(PASSWORD_TOKEN_EXPIRATION, PASSWORD_TOKEN_EXPIRATION_DEFAULT));
        return now.after(expireDate);
    }

    /**
     * @param inIsValid the isValid to set
     */
    public void setIsValid(boolean inIsValid) {
        this.isValid = inIsValid;
    }

    /* (non-Javadoc)
     * @see java.lang.Object#hashCode()
     */
    @Override
    public int hashCode() {
        return new HashCodeBuilder().append(this.getId()).append(this.getUserId()).append(this.getToken())
                .toHashCode();
    }

    /* (non-Javadoc)
     * @see java.lang.Object#equals(java.lang.Object)
     */
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        ResetPassword other = (ResetPassword) obj;
        return new EqualsBuilder().append(this.getId(), other.getId()).append(this.getUserId(), other.getUserId())
                .append(this.getToken(), other.getToken()).isEquals();
    }

    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return new StringBuilder("ResetPassword [id=").append(getId()).append(", token=").append(getToken())
                .append(", userId=").append(getUserId()).append(", isValid=").append(isValid()).append(", created=")
                .append(getCreated()).append(", isExpired=").append(isExpired()).append("]").toString();

    }
}