Package com.cedarsolutions.shared.domain

Source Code of com.cedarsolutions.shared.domain.FederatedUser

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
*              C E D A R
*          S O L U T I O N S       "Software done right."
*           S O F T W A R E
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Copyright (c) 2013 Kenneth J. Pronovici.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the Apache License, Version 2.0.
* See LICENSE for more information about the licensing terms.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Author   : Kenneth J. Pronovici <pronovic@ieee.org>
* Language : Java 6
* Project  : Common Java Functionality
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
package com.cedarsolutions.shared.domain;

import com.flipthebird.gwthashcodeequals.EqualsBuilder;
import com.flipthebird.gwthashcodeequals.HashCodeBuilder;

/**
* Federated user, as returned from services.
*
* <p>
* For our purposes, federated users are users identified by an OpenId provider
* like Google or AOL.  Federated users have more attributes than simple Google
* users.  We track the authentication domain, derive a legible user name, etc.
* </p>
*
* @author Kenneth J. Pronovici <pronovic@ieee.org>
*/
public class FederatedUser extends TranslatableDomainObject {

    /** Serialization version number, which can be important to the GAE back-end. */
    private static final long serialVersionUID = 1L;

    /** Unique user identifier across all authentication domains. */
    private String userId;

    /** Legible username for display purposes (format varies by provider). */
    private String userName;

    /** Email address associated with a login (only available for some providers). */
    private String emailAddress;

    /** Authentication domain for this login. */
    private String authenticationDomain;

    /** Open id provider (usually tied to the authentication domain). */
    private OpenIdProvider openIdProvider;

    /** Federated identity (generated by the OpenId provider). */
    private String federatedIdentity;

    /** Whether this user is an administrator. */
    private boolean admin;

    /** Whether this is the user's first login. */
    private boolean firstLogin;

    /** Compare this object to another object. */
    @Override
    public boolean equals(Object obj) {
        FederatedUser other = (FederatedUser) obj;
        return new EqualsBuilder()
                    .append(this.userId, other.userId)
                    .append(this.userName, other.userName)
                    .append(this.emailAddress, other.emailAddress)
                    .append(this.authenticationDomain, other.authenticationDomain)
                    .append(this.openIdProvider, other.openIdProvider)
                    .append(this.federatedIdentity, other.federatedIdentity)
                    .append(this.admin, other.admin)
                    .append(this.firstLogin, other.firstLogin)
                    .isEquals();
    }

    /** Generate a hash code for this object. */
    @Override
    public int hashCode() {
        return new HashCodeBuilder()
                    .append(this.userId)
                    .append(this.userName)
                    .append(this.emailAddress)
                    .append(this.authenticationDomain)
                    .append(this.openIdProvider)
                    .append(this.federatedIdentity)
                    .append(this.admin)
                    .append(this.firstLogin)
                    .toHashCode();
    }

    public String getUserId() {
        return this.userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return this.userName;
    }

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

    public String getEmailAddress() {
        return this.emailAddress;
    }

    public void setEmailAddress(String emailAddress) {
        this.emailAddress = emailAddress;
    }

    public String getAuthenticationDomain() {
        return this.authenticationDomain;
    }

    public void setAuthenticationDomain(String authenticationDomain) {
        this.authenticationDomain = authenticationDomain;
    }

    public OpenIdProvider getOpenIdProvider() {
        return this.openIdProvider;
    }

    public void setOpenIdProvider(OpenIdProvider openIdProvider) {
        this.openIdProvider = openIdProvider;
    }

    public String getFederatedIdentity() {
        return this.federatedIdentity;
    }

    public void setFederatedIdentity(String federatedIdentity) {
        this.federatedIdentity = federatedIdentity;
    }

    public boolean isAdmin() {
        return this.admin;
    }

    public void setAdmin(boolean admin) {
        this.admin = admin;
    }

    public boolean isFirstLogin() {
        return this.firstLogin;
    }

    public void setFirstLogin(boolean firstLogin) {
        this.firstLogin = firstLogin;
    }

}
TOP

Related Classes of com.cedarsolutions.shared.domain.FederatedUser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.