// $HeadURL$
// $Id$
//
// Copyright © 2006, 2010, 2011, 2012 by the President and Fellows of Harvard College.
//
// Screensaver is an open-source project developed by the ICCB-L and NSRB labs
// at Harvard Medical School. This software is distributed under the terms of
// the GNU General Public License.
package edu.harvard.med.screensaver.ui.arch.auth;
import java.security.Principal;
import edu.harvard.med.screensaver.model.users.ScreensaverUser;
/**
* @motivation too problematic to have ScreensaverUser implement Principal
* interface (automated entity bean tests fail, due to
* getter-without-setter error), so creating a standalone Principal
* class for ScreensaverUser objects.
*/
public class ScreensaverUserPrincipal implements Principal
{
private ScreensaverUser _screensaverUser;
public ScreensaverUserPrincipal(ScreensaverUser user)
{
_screensaverUser = user;
}
public ScreensaverUser getScreensaverUser()
{
return _screensaverUser;
}
public String getName()
{
// return a unique, non-null identifier, which happens to be "email" for our ScreensaverUser entity
return _screensaverUser.getEmail();
}
@Override
public boolean equals(Object other)
{
if (!(other instanceof ScreensaverUserPrincipal)) {
return false;
}
return getName().equals(((ScreensaverUserPrincipal) other).getName());
}
@Override
public int hashCode()
{
return getName().hashCode();
}
@Override
public String toString()
{
return getName();
}
}